A×Ü
Ï
ßD
MAµÄʵ
ÏÖ
- [À¶ÉÁÖ-×ÔÓÉÈí¼þ]" href="http://ma.detainedslut.com/feed//pl/Eminem/Dearly_Beloved/" />
A×Ü
Ï
ßD
MAµÄʵ
ÏÖ
- [À¶ÉÁÖ-×ÔÓÉÈí¼þ]
A×Ü
Ï
ßD
MAµÄʵ
ÏÖ
- [À¶ÉÁÖ-×ÔÓÉÈí¼þ]4£®1 DMA¸ÅÊö
DMAÊÇÍâÉèÓëÖ÷´æÖ®¼äµÄÒ»ÖÖÊý¾Ý´«Êä»úÖÆ¡£Ò»°ãÀ´Ëµ£¬ÍâÉèÓëÖ÷´æÖ®¼ä´æÔÚÁ½ÖÖÊý¾Ý´«Êä·½·¨£º£¨1£©Pragrammed I/O£¨PIO£©·½·¨£¬Ò²¼´ÓÉCPUͨ¹ýÄÚ´æ¶ÁдָÁî»òI/OÖ¸ÁîÀ´³ÖÐøµØ¶ÁдÍâÉèµÄÄÚ´æµ¥Ôª£¨8λ¡¢16λ»ò32룩£¬Ö±µ½Õû¸öÊý¾Ý´«Êä¹ý³ÌÍê³É¡££¨2£©DMA£¬¼´ÓÉDMA¿ØÖÆÆ÷£¨DMA Controller£¬¼ò³ÆDMAC£©À´Íê³ÉÕû¸öÊý¾Ý´«Êä¹ý³Ì¡£ÔÚ´ËÆÚ¼ä£¬CPU¿ÉÒÔ²¢·¢µØÖ´ÐÐÆäËûÈÎÎñ£¬µ±DMA½áÊøºó£¬DMACͨ¹ýÖжÏ֪ͨCPUÊý¾Ý´«ÊäÒѾ½áÊø£¬È»ºóÓÉCPUÖ´ÐÐÏàÓ¦µÄISR½øÐкó´¦Àí¡£
DMA¼¼Êõ²úÉúʱÕýÊÇISA×ÜÏßÔÚPCÖÐÁ÷ÐеÄʱºî¡£Òò´Ë£¬ISA¿¨µÄDMAÊý¾Ý´«ÊäÊÇͨ¹ýISA×ÜÏß¿ØÖÆÐ¾Æ¬×éÖеÄÁ½¸ö¼¶Áª8237 DMACÀ´ÊµÏֵġ£ÕâÖÖDMA»úÖÆÒ²³ÆÎª¡°±ê×¼DMA¡±£¨standard DMA£©¡£±ê×¼DMAÓÐʱҲ³ÆÎª¡°µÚÈý·½DMA¡±£¨third-party DMA£©£¬ÕâÊÇÒòΪ£ºÏµÍ³DMACÍê³Éʵ¼ÊµÄ´«Êä¹ý³Ì£¬ËùÒÔËüÏà¶ÔÓÚ´«Êä¹ý³ÌµÄ¡°Ç°Á½·½¡±£¨´«ÊäµÄ·¢ËÍÕߺͽÓÊÕÕߣ©À´ËµÊÇ¡°µÚÈý·½¡±¡£
±ê×¼DMA¼¼ÊõÖ÷ÒªÓÐÁ½¸öȱµã£º£¨1£©8237 DMACµÄÊý¾Ý´«ÊäËÙ¶ÈÌ«Âý£¬²»ÄÜÓë¸ü¸ßËÙµÄ×ÜÏߣ¨ÈçPCI£©ÅäºÏʹÓᣣ¨2£©Á½¸ö8237 DMACÒ»ÆðÖ»ÌṩÁË8¸öDMAͨµÀ£¬ÕâÒ²³ÉΪÁËÏÞÖÆÏµÍ³I/OÍÌÍÂÂÊÌáÉýµÄÆ¿¾±¡£
¼øÓÚÉÏÊöÁ½¸öÔÒò£¬PCI×ÜÏßÌåϵ½á¹¹Éè¼ÆÒ»ÖÖ³ÉΪ¡°µÚÒ»·½DMA¡±£¨first-party DMA£©µÄDMA»úÖÆ£¬Ò²³ÆÎª¡°Bus Mastering¡±£¨×ÜÏßÖ÷¿Ø£©¡£ÔÚÕâÖÖÇé¿öÏ£¬½øÐд«ÊäµÄPCI¿¨±ØÐëÈ¡µÃϵͳ×ÜÏßµÄÖ÷¿ØÈ¨ºó²ÅÄܽøÐÐÊý¾Ý´«Ê䡣ʵ¼ÊµÄ´«ÊäÒ²²»½èÖúÂýËÙµÄISA DMACÀ´½øÐУ¬¶øÊÇÓÉÄÚǶÔÚPCI¿¨ÖеÄDMAµç·£¨±È´«Í³µÄISA DMACÒª¿ì£©À´Íê³É¡£Bus Mastering·½Ê½µÄDMA¿ÉÒÔÈÃPCIÍâÉèµÃµ½ËüÃÇÏëÒªµÄ´«Êä´ø¿í£¬Òò´ËËü±È±ê×¼DMA¹¦ÄÜÂú×ãÏÖ´ú¸ßÐÔÄÜÍâÉèµÄÒªÇó¡£
Ëæ×żÆËã»úÍâÉè¼¼ÊõµÄ²»¶Ï·¢Õ¹£¬ÏÖ´úÄÜÌṩ¸ü¿ì´«ÊäËÙÂʵÄUltra DMA£¨UDMA£©Ò²ÒѾ±»¹ã·ºÊ¹ÓÃÁË¡£±¾ÎªËæºóµÄƪ·ùÖ»ÌÖÂÛISA×ÜÏߵıê×¼DMA¼¼ÊõÔÚLinuxÖеÄʵÏÖ¡£¼Çס£ºISA¿¨¼¸ºõ²»Ê¹ÓÃBus MasteringģʽµÄDMA£»¶øPCI¿¨Ö»Ê¹ÓÃBus MasteringģʽµÄDMA£¬Ëü´Ó²»Ê¹Óñê×¼DMA¡£
4£®2 Intel 8237 DMAC
×î³õµÄIBM PC£¯XTÖÐÖ»ÓÐÒ»¸ö8237 DMAC£¬ËüÌṩÁË4¸ö8λµÄDMAͨµÀ£¨DMA channel 0£3£©¡£´ÓIBM AT¿ªÊ¼£¬ÓÖÔö¼ÓÁËÒ»¸ö8237 DMAC£¨Ìṩ4¸ö16λµÄDMAͨµÀ£¬DMA channel 4£7£©¡£Á½¸ö8237 DMACÒ»ÆðΪϵͳÌṩ8¸öDMAͨµÀ¡£ÓëÖжϿØÖÆÆ÷8259µÄ¼¶Áª·½Ê½Ïà·´£¬µÚÒ»¸öDMAC±»¼¶Áªµ½µÚ¶þ¸öDMACÉÏ£¬Í¨µÀ4±»ÓÃÓÚDMAC¼¶Áª£¬Òò´ËËü¶ÔÍâÉèÀ´ËµÊDz»¿ÉÓõġ£µÚÒ»¸öDMACÒ²³ÆÎª¡°slave DAMC¡±£¬µÚ¶þ¸öDMACÒ²³ÆÎª¡°Master DMAC¡±¡£
ÏÂÃæÎÒÃÇÀ´ÏêϸÐðÊöÒ»ÏÂIntel 8237Õâ¸öDMACµÄ½á¹¹¡£
ÿ¸ö8237 DMAC¶¼Ìṩ4¸öDMAͨµÀ£¬Ã¿¸öDMAͨµÀ¶¼Óи÷×ԵļĴæÆ÷£¬¶ø8237±¾ÉíÒ²ÓÐÒ»×é¿ØÖÆ¼Ä´æÆ÷£¬ÓÃÒÔ¿ØÖÆËüËùÌṩµÄËùÓÐDMAͨµÀ¡£
4£®2£®1 DMAͨµÀµÄ¼Ä´æÆ÷
8237 DMACÖеÄÿ¸öDMAͨµÀ¶¼ÓÐ5¸ö¼Ä´æÆ÷£¬·Ö±ðÊÇ£ºµ±Ç°µØÖ·¼Ä´æÆ÷¡¢µ±Ç°¼ÆÊý¼Ä´æÆ÷¡¢µØÖ·¼Ä´æÆ÷£¨Ò²³ÆÎªÆ«ÒƼĴæÆ÷£©¡¢¼ÆÊý¼Ä´æÆ÷ºÍÒ³¼Ä´æÆ÷¡£ÆäÖУ¬Ç°Á½¸öÊÇ8237µÄÄÚ²¿¼Ä´æÆ÷£¬¶ÔÍⲿÊDz»¿É¼ûµÄ¡£
£¨1£©µ±Ç°µØÖ·¼Ä´æÆ÷£¨Current Address Register£©£ºÃ¿¸öDMAͨµÀ¶¼ÓÐÒ»¸ö16λµÄµ±Ç°µØÖ·¼Ä´æÆ÷£¬±íʾһ¸öDMA´«ÊäÊÂÎñ£¨Transfer Transaction£©ÆÚ¼äµ±Ç°DMA´«Êä²Ù×÷µÄDMAÎïÀíÄÚ´æµØÖ·¡£ÔÚÿ¸öDMA´«Ê俪ʼǰ£¬8237¶¼»á×Ô¶¯µØÓøÃͨµÀµÄAddress RegisterÖеÄÖµÀ´³õʼ»¯Õâ¸ö¼Ä´æÆ÷£»ÔÚ´«ÊäÊÂÎñÆÚ¼äµÄÿ´ÎDMA´«Êä²Ù×÷Ö®ºó¸Ã¼Ä´æÆ÷µÄÖµ¶¼»á±»×Ô¶¯µØÔö¼Ó»ò¼õС¡£
£¨2£©µ±Ç°¼ÆÊý¼Ä´æÆ÷£¨Current Count Register£©£ºÃ¿¸öÿ¸öDMAͨµÀ¶¼ÓÐÒ»¸ö16λµÄµ±Ç°¼ÆÊý¼Ä´æÆ÷£¬±íʾµ±Ç°DMA´«ÊäÊÂÎñ»¹Ê£Ï¶àÉÙδ´«ÊäµÄÊý¾Ý¡£ÔÚÿ¸öDMA´«ÊäÊÂÎñ¿ªÊ¼Ö®Ç°£¬8237¶¼»á×Ô¶¯µØÓøÃͨµÀµÄCount RegisterÖеÄÖµÀ´³õʼ»¯Õâ¸ö¼Ä´æÆ÷¡£ÔÚ´«ÊäÊÂÎñÆÚ¼äµÄÿ´ÎDMA´«Êä²Ù×÷Ö®ºó¸Ã¼Ä´æÆ÷µÄÖµ¶¼»á±»×Ô¶¯µØÔö¼Ó»ò¼õС£¨²½³¤Îª1£©¡£
£¨3£©µØÖ·¼Ä´æÆ÷£¨Address Register£©»òÆ«ÒÆ¼Ä´æÆ÷£¨Offset Register£©£ºÃ¿¸öDMAͨµÀ¶¼ÓÐÒ»¸ö16λµÄµØÖ·¼Ä´æÆ÷£¬±íʾϵͳRAMÖеÄDMA»º³åÇøµÄÆðʼλÖÃÔÚÒ³Ä򵀮«ÒÆ¡£
£¨4£©¼ÆÊý¼Ä´æÆ÷£¨Count Register£©£ºÃ¿¸öDMAͨµÀ¶¼ÓÐÒ»¸ö16λµÄ¼ÆÊý¼Ä´æÆ÷£¬±íʾDMA»º³åÇøµÄ´óС¡£
£¨5£©Ò³¼Ä´æÆ÷£¨Page Register£©£º¸Ã¼Ä´æÆ÷¶¨ÒåÁËDMA»º³åÇøµÄÆðʼλÖÃËùÔÚÎïÀíÒ³µÄ»ùµØÖ·£¬¼´Ò³ºÅ¡£Ò³¼Ä´æÆ÷ÓеãÀàËÆÓÚPCÖеĶλùÖ·¼Ä´æÆ÷¡£
4£®2£®2 8237 DAMCµÄ¿ØÖƼĴæÆ÷
£¨1£©ÃüÁî¼Ä´æÆ÷£¨Command Register£©
Õâ¸ö8λµÄ¼Ä´æÆ÷ÓÃÀ´¿ØÖÆ8237оƬµÄ²Ù×÷¡£Æä¸÷λµÄ¶¨ÒåÈçÏÂͼËùʾ£º
£¨2£©Ä£Ê½¼Ä´æÆ÷£¨Mode Register£©
ÓÃÓÚ¿ØÖƸ÷DMAͨµÀµÄ´«Êäģʽ£¬ÈçÏÂËùʾ£º
£¨3£©ÇëÇó¼Ä´æÆ÷£¨Request Register£©
ÓÃÓÚÏò¸÷DMAͨµÀ·¢³öDMAÇëÇ󡣸÷λµÄ¶¨ÒåÈçÏ£º
£¨4£©ÆÁ±Î¼Ä´æÆ÷£¨Mask Register£©
ÓÃÀ´ÆÁ±Îij¸öDMAͨµÀ¡£µ±Ò»¸öDMAͨµÀ±»ÆÁ±Îºó£¬Ëü¾Í²»ÄÜÔÚ·þÎñÓÚDMAÇëÇó£¬Ö±µ½Í¨µÀµÄÆÁ±ÎÂë±»Çå³ý¡£¸÷λµÄ¶¨ÒåÈçÏ£º
ÉÏÊöÆÁ±Î¼Ä´æÆ÷Ò²³ÆÎª¡°µ¥Í¨µÀÆÁ±Î¼Ä´æÆ÷¡±£¨Single Channel Mask Register£©£¬ÒòΪËüÒ»´ÎÖ»ÄÜÆÁ±ÎÒ»¸öͨµÀ¡£´ËÍ⺬ÓÐÒ»¸öÆÁ±Î¼Ä´æÆ÷£¬¿ÉÒÔʵÏÖÒ»´ÎÆÁ±ÎËùÓÐ4¸öDMAͨµÀ£¬ÈçÏ£º
£¨5£©×´Ì¬¼Ä´æÆ÷£¨Status Register£©
Ò»¸öÖ»¶ÁµÄ8λ¼Ä´æÆ÷£¬±íʾ¸÷DMAͨµÀµÄµ±Ç°×´Ì¬¡£±ÈÈ磺DMAͨµÀÊÇ·ñÕý·þÎñÓÚÒ»¸öDMAÇëÇ󣬻òÕßij¸öDMAͨµÀÉϵÄDMA´«ÊäÊÂÎñÒѾÍê³É¡£¸÷λµÄ¶¨ÒåÈçÏ£º
4£®2£®3 8237 DMACµÄI/O¶Ë¿ÚµØÖ·
Ö÷¡¢´Ó8237 DMACµÄ¸÷¸ö¼Ä´æÆ÷¶¼ÊDZàÖ·ÔÚI/O¶Ë¿Ú¿Õ¼äµÄ¡£¶øÇÒÆäÖÐÓÐЩI/O¶Ë¿ÚµØÖ·¶ÔÓÚI/O¶Á¡¢Ð´²Ù×÷Óв»Í¬µÄ±íʾº¬Òå¡£ÈçϱíʾËùʾ£º
Slave DMAC¡¯s I/O port Master DMAC¡¯sI/O port read write
0x000 0x0c0 Channel 0/4 µÄAddress Register
0x001 0x0c1 Channel 0£¯4µÄCount Register
0x002 0x0c2 Channel 1£¯5 µÄAddress Register
0x003 0x0c3 Channel 1£¯5µÄCount Register
0x004 0x0c4 Channel 2£¯6µÄAddress Register
0x005 0x0c5 Channel 2£¯6µÄCount Register
0x006 0x0c6 Channel 3£¯7µÄAddress Register
0x007 0x0c7 Channel 3£¯7µÄCount Register
0x008 0x0d0 Status Register Command Register
0x009 0x0d2 Request Register
0x00a 0x0d4 Single Channel Mask Register
0x00b 0x0d6 Mode Register
0x00c 0x0d8 Clear Flip-Flop Register
0x00d 0x0da Temporary Register Reset DMA controller
0x00e 0x0dc Reset all channel masks
0x00f 0x0de all-channels Mask Register
¸÷DMAͨµÀµÄPage RegisterÔÚI/O¶Ë¿Ú¿Õ¼äÖеĵØÖ·ÈçÏ£º
DMA channel Page Register¡¯sI/O port address
0 0x087
1 0x083
2 0x081
3 0x082
4 0x08f
5 0x08b
6 0x089
7 0x08a
×¢ÒâÁ½µã£º
1. ¸÷DMAͨµÀµÄAddress RegisterÊÇÒ»¸ö16λµÄ¼Ä´æÆ÷£¬µ«Æä¶ÔÓ¦µÄI/O¶Ë¿ÚÊÇ8λ¿í£¬Òò´Ë¶ÔÕâ¸ö¼Ä´æÆ÷µÄ¶Áд¾ÍÐèÒªÁ½´ÎÁ¬ÐøµÄI/O¶Ë¿Ú¶Áд²Ù×÷£¬µÍ8λÊ×Ïȱ»·¢ËÍ£¬È»ºó½ô½Ó×Å·¢Ë͸ß8λ¡£
2. ¸÷DMAͨµÀµÄCount Register£ºÕâÒ²ÊÇÒ»¸ö16λ¿íµÄ¼Ä´æÆ÷£¨ÎÞÂÛ¶ÔÓÚ8λDMA»¹ÊÇ16λDMA£©£¬µ«Ïà¶ÔÓ¦µÄI/O¶Ë¿ÚÒ²ÊÇ8λ¿í£¬Òò´Ë¶ÁдÕâ¸ö¼Ä´æÆ÷ͬÑùÐèÒªÁ½´ÎÁ¬ÐøµÄI/O¶Ë¿Ú¶Áд²Ù×÷£¬¶øÇÒͬÑùÊÇÏÈ·¢Ë͵Í8룬ÔÙ·¢Ë͸ß8λ¡£ÍùÕâ¸ö¼Ä´æÆ÷ÖÐдÈëµÄÖµÓ¦¸ÃÊÇʵ¼ÊÒª´«ÊäµÄÊý¾Ý³¤¶È¼õ1ºóµÄÖµ¡£ÔÚDMA´«ÊäÊÂÎñÆÚ¼ä£¬Õâ¸ö¼Ä´æÆ÷ÖеÄÖµÔÚÿ´ÎDMA´«Êä²Ù×÷ºó¶¼»á±»¼õ1£¬Òò´Ë¶ÁÈ¡Õâ¸ö¼Ä´æÆ÷ËùµÃµ½µÄÖµ½«Êǵ±Ç°DMAÊÂÎñËùÊ£ÓàµÄδ´«ÊäÊý¾Ý³¤¶È¼õ1ºóµÄÖµ¡£µ±DMA´«ÊäÊÂÎñ½áÊøÊ±£¬¸Ã¼Ä´æÆ÷ÖеÄÖµÓ¦¸Ã±»ÖÃΪ0¡£
4£®2£®4 DMAͨµÀµÄµäÐÍʹÓÃ
ÔÚÒ»¸öµäÐ͵ÄPC»úÖУ¬Ä³Ð©DMAͨµÀͨ³£±»¹Ì¶¨µØÓÃÓÚһЩPC»úÖеıê×¼ÍâÉ裬ÈçÏÂËùʾ£º
Channel Size Usage
0 8-bit Memory Refresh
1 8-bit Free
2 8-bit Floppy Disk Controller
3 8-bit Free
4 16-bit Cascading
5 16-bit Free
6 16-bit Free
7 16-bit Free
4£®2£®5 Æô¶¯Ò»¸öDMA´«ÊäÊÂÎñµÄ²½Öè
ÒªÆô¶¯Ò»¸öDMA´«ÊäÊÂÎñ±ØÐë¶Ô8237½øÐбà³Ì£¬ÆäµäÐͲ½ÖèÈçÏ£º
1. ͨ¹ýCLIÖ¸Áî¹Ø±ÕÖжϡ£
2. DisableÄǸö½«±»ÓÃÓÚ´Ë´ÎDMA´«ÊäÊÂ
kLinux¶ÔIS
A×Ü
Ï
ßD
MAµÄʵ
ÏÖ
- [À¶ÉÁÖ-×ÔÓÉÈí¼þ]p p Detained Detained
eLinux¶ÔIS
A×Ü
Ï
ßD
MAµÄʵ
ÏÖ
- [À¶ÉÁÖ-×ÔÓÉÈí¼þ]p c Slut