ΥڡϤƤʥ֥åޡɲΥڡޤϤƤʥ֥åޡ Υڡlivedoor åפɲΥڡޤlivedoor å

ܼ

μ

Х

  • ХˤϻѸ롣
    • ХλѸIJǽΤХޥȤ
  • ХλѸ1٤1ĤΥХޥͭ뤳ȤǤ롣
    • 㤨СDMAȥ餬ХѸäƤȤϡCPUϥХѤǤʤ
  • Хޥʣ¸ߤȤˡХѸĴԤΤХӥȤ
    • ХȥϤΥХӥεǽġ

DMADirect Memory Access

Хޥθ¤Сԥ塼λش̿ġˤեåפ۲֤ȤǤ롣ԥ塼ưľϴŪMPUХޥˤʤ롣Ȥˤäƥǡž®뤿ˡDMAȥ㤨Хǥץ쥤󥿥եʸžȤˤFDȥFDȥǡɤ߽񤭤򤹤ˤ˥Хޥθ¤ܤȤ롣

ǡ̤¿ȤޥХCPUλۤ夲Ū¾֤ΥХͭơΨ夲롣ˡDMAȤĤޤꡢDMAȤΰǤ롣ξϡCPṲˡľܳδ֤ǥǡžԤΤǡ®٤¿̤Υǡ֥åȤžǤ롣

CPUߤINPUT̿ᡢOUTPUT̿ʤɤ¹ԤƥǡžԤˡProgrammed I/OPIOȤΤȤ̿줬10ɬפˤʤꡢž100[s]ˤʤꡢ®žԸǤ롣ĤޤꡢϤΤ̿ʤɤ¹Ԥ뤳Ȥԡ㲼򾷤ƤΤǤ롣

äơDMACPUơյFDDǥץ쥤åȥơץ쥳ˤȥľ뤷ƤޤȤͤǤ롣CPUDMAȥDMACȸƤФϡɥɬפǤ롣

DMAȥ

  • DMAC
  • ֤ȼ絭֤δ֤ǥǡžԤΥѥȤƤϼ롣
    • ֤ФƤϥХͳɤ߽񤭤Ԥ
    • 絭֤б¢ROM/RAMФƤХ𤷤ɤ߽񤭤Ԥ
    • 絭֤б볰ROM/RAMФƤϥХȥͳɤ߽񤭤Ԥ

ե󡦥Υޥܥȥͥå

  • DMAȤȡ̾CPUȤХ˲äơХήǡ̤롣ΤᡢȥϥХγưĴɬפ롣
  • ͥ줿߷פǤ⡢׵ᤵǡž̤ΥХεž̤Ķ뤳Ȥ롣
    • ϥХ𤷤ƥǡžΥޥ󷿥ԥ塼ͭʤΤǡե󡦥ΥޥܥȥͥåȸƤ֡

DMAʬ

DMAμ

DMAžԤˤϡžϤ˥ץˤ뼡νɬפȤ롣

1ɥ쥹쥸DMAž򳫻ϤϤž롣

2žǡθĿ򥫥󥿤ž롣󥿤˥ɥ쥹쥸⤦ҤȤĤȤϡDMAžνλϤž⤢롣

3ơ쥸楳ɤž롣楳ɤȤϼյ狼إǡžΤʥǡžˡ꤫յžΤDMAư򥢥ƥ֤ˤΤ󥢥ƥ֤ˤΤΰ֤ΥӥåȤ0/1ΤǤ롣

ξϡǡХФDMAȥΥ쥸˽񤭹ޤ롣

DMA¹Ԥΰ

յ狼DMAREQDMA RequestDMA׵΅ˤDMAȥ褿Ȥ롣ΤȤơ쥸DMAưΥƥ֤򼨤ƤСDMAȥCPUФHOLD REQ롣HOLDĤȡյإΥåɿDMAACKϤ롣

ǡžؤν񤭹ߤȤȡDMAACK뤴Ȥ˼յϥǡХž٤ФDMAȥϥɥ쥹쥸Ƥ򥢥ɥ쥹ХФơWRITEư򼨤򥹥ơ쥸ˤäƥƥ֤ˤ롣

ʾưΥߥ󥰤ޤȤƤСΤۤϥɥ쥹μåΥꥻΥǡळȤˤʤ롣濮桦ǡɥ쥹ȯCPUǤäƤ⡢DMAȥǤäƤ⡢RAMˤϴطʤȤǤ롣1ž뤴ȤDMAȥϥ󥿤ͤǥȤΤǡˤʤžλȤˤʤ롣ʤ󥿤˽λϤ򼨤쥸ˤϡƬϤ򼨤쥸򥤥󥯥ȤƤ

DMAžνλ

DMAžλˡ򤫤CPUΤ餻⤢롣

ޤѤε쥸äƤСٽԤCPUߤޤޤǽ¹Ԥ⤢롣

յ郎ʣ¸ߤDMAž

յ郎ʣ¸ߤơDMAž׵᤹Ǥ⡢ŪˤϰĤξѤʤDMAž׵Фơɥ쥹쥸ơ쥸DMAȥߤƤΥץŬͤ񤭹ǤФ褤ΤǤ롣

DMAREQͥ٤Ǥ뤬DMAȥ¸ˤʤ롣

    • IntelҤ8257,8257-5ʤɤΥץޥ֥DMAȥ
      • 4ĤDMAREQüҤ̤ͥθ꤬Ǥ롣
      • ˡDMA뤴Ȥ̤ͥѹǽǤ롣

DMA

  • DMAȥ餬žԤ
    • Τᡢեȥ¦̤νôǤ롣
    • DMAžϻꤷǹԤ뤿ᡢ٤åϤǤʤĤޤꡢñʥǡžΤߤȤʤ롣
  • ǡž˥եȥߤʤᡢPIOž٤ž֤®
  • եȥˤDMAȥФžž衦žꤹɬפ롣
    • Τᡢ̤Υǡžξ硢֤PIOž٤ʤ뤳Ȥ롣
  • DMAžξ硢DMAȥ餬ǡžԤ˥ХѸơCPUХѤǤ̤Ȥƥեȥμ¹Ԥ̾٤ʤäƤޤȤǽȤƤꤨ롣
    • äȤ߹ߵξ硢ʣ̿Ԥäꡢ1ޥñ̤ǤԤäꡢ֤Τ椷ꤹ뤳Ȥ뤿ᡢǡžǥХͭƤޤᥤưʤʤäƤޤäƤȤʤäƤޤ
    • 褹뤿ˤϡ륹⡼*1Сȥ⡼*2DMAžԤ褦ˤꡢȤ߹ߵư˱ƶͿʤ褦žʬ䤷ꤹˡͤ롣

ʸ

  • إƥå׼ޥùֺ¡
  • سؽԥ塼1978ǯ2
  • إԥ塼


*1 CPUХѤǤʤȤDMAžԤ⡼ɡ
*2 ꤷǡžޤDMAȥ餬ХѸͭ⡼ɡ