ÔISA×ÜÏßDMAµÄʵÏÖ - [À¶É­ÁÖ×ÔÓÉÈí¼þ]" href="http://dur.detainedslut.com/feed//is/Eminem/Don't_Stop/" /> Linux<img src="http://www.wj-nude-lesbians.com/galls-5/anal-photos/58/chubby-slut-0.jpg"/>¶<img src="http://media.washingtontimes.com/media/img/photos/2009/07/06/20090705-210827-pic-320369126_t756.jpg?362c89b9f4298c1f7d888d4fceb46698f5dfcc26"/>ÔISA×<img src="http://www.bangmyslut.com/blogs/media/users/lvguy666/2009/20090502/4Nup2UdyY.jpg"/>ÜÏßDMAµ<img src="http://perpure.com/app/slut34/Dsc06109.jpg"/>ÄʵÏÖ - [<img src="http://www.wj-nude-lesbians.com/galls-6/anal-pics/26/depraved-slut-13.jpg"/>À¶<img src="http://www.planetslutwife.com/slut-wife/slut-wife-001.jpg"/>É­ÁÖ<img src="http://pregnant.smutnut.org/wp-content/uploads/2009/06/black-cock-slut-talks.jpg"/>×ÔÓÉÈí¼þ]

Slut Detained Slut

LinuxÔISA×ÜÏßDMAµÄʵÏÖ - [À¶É­ÁÖ×ÔÓÉÈí¼þ]

Dur Detainedslut Is Eminem Don't Stop Detained Slut

IO£©·½·¨£¬Ò²¼´ÓÉCPUͨ¹ýÄÚ´æ¶ÁдָÁî»òI/OÖ¸ÁîÀ´³ÖÐøµØ¶ÁдÍâÉèµÄÄÚ´æµ¥Ôª£¨8λ¡¢16λ»ò32룩£¬Ö±µ½Õû¸öÊý¾Ý´«Êä¹ý³ÌÍê³É¡££¨2£©DMA£¬¼´ÓÉDMA¿ØÖÆÆ÷£¨DMA Controller£¬¼ò³ÆAC£©À´Íê³ÉÕû¸öÊý¾Ý´«Êä¹ý³Ì¡£ÔÚ´ËÆÚ¼ä£¬CPU¿ÉÒÔ²¢·¢µØÖ´ÐÐÆäËûÈÎÎñ£¬µ±A½áÊøºó£¬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´«ÊäÊÂÎñµÄDMAͨµÀ¡£
3. ÏòFlip-Flop¼Ä´æÆ÷ÖÐдÈë0Öµ£¬ÒÔÖØÖÃËü¡£
4. ÉèÖÃMode Register¡£
5. ÉèÖÃPage Register¡£
6. ÉèÖÃAddress Register¡£
7. ÉèÖÃCount Register¡£
8. EnableÄǸö½«±»ÓÃÓÚ´Ë´ÎDMA´«ÊäÊÂÎñµÄDMAͨµÀ¡£
9. ÓÃSTIÖ¸ÁÖжϡ£

4£®3 Linux¶Ô¶Áд²Ù×÷8237 DMACµÄʵÏÖ
ÓÉÓÚDMACµÄ¸÷¼Ä´æÆ÷ÊÇÔÚI/O¶Ë¿Ú¿Õ¼äÖбàÖ·µÄ£¬Òò´Ë¶Áд8237 DMACÊÇÆ½Ì¨Ïà¹ØµÄ¡£¶ÔÓÚx86ƽ̨À´Ëµ£¬LinuxÔÚinclude£¯asm-i386£¯Dma.hÍ·ÎļþÖÐʵÏÖÁ˶ÔÁ½¸ö8237 DMACµÄ¶Áд²Ù×÷¡£
4£®3£®1 ¶Ë¿ÚµØÖ·ºÍ¼Ä´æÆ÷ÖµµÄºê¶¨Òå
LinuxÓúêMAX_DMA_CHANNELSÀ´±íʾϵͳµ±Ç°µÄDMAͨµÀ¸öÊý£¬ÈçÏ£º
#define MAX_DMA_CHANNELS 8
È»ºó£¬ÓúêIO_DMA1_BASEºÍIO_DMA2_BASEÀ´·Ö±ð±íʾÁ½¸öDMACÔÚI/O¶Ë¿Ú¿Õ¼äµÄ¶Ë¿Ú»ùµØÖ·£º
#define IO_DMA1_BASE 0x00 /* 8 bit slave DMA, channels 0..3 */
#define IO_DMA2_BASE 0xC0 /* 16 bit master DMA, ch 4(=slave input)..7 */

½ÓÏÂÀ´£¬Linux¶¨ÒåÁËDMAC¸÷¿ØÖƼĴæÆ÷µÄ¶Ë¿ÚµØÖ·¡£ÆäÖУ¬slave SMACµÄ¸÷¿ØÖƼĴæÆ÷µÄ¶Ë¿ÚµØÖ·¶¨ÒåÈçÏ£º
#define DMA1_CMD_REG 0x08 /* command register (w) */
#define DMA1_STAT_REG 0x08 /* status register (r) */
#define DMA1_REQ_REG 0x09 /* request register (w) */
#define DMA1_MASK_REG 0x0A /* single-channel mask (w) */
#define DMA1_MODE_REG 0x0B /* mode register (w) */
#define DMA1_CLEAR_FF_REG 0x0C /* clear po bLinuxÔISA×ÜÏßDMAµÄʵÏÖ - [À¶É­ÁÖ×ÔÓÉÈí¼þ]h v Slut Slut Detained Slut vLinuxÔISA×ÜÏßDMAµÄʵÏÖ - [À¶É­ÁÖ×ÔÓÉÈí¼þ]b Slut Slut Detained