{"id":514,"date":"2019-10-10T17:24:29","date_gmt":"2019-10-10T11:54:29","guid":{"rendered":"https:\/\/binaryterms.com\/?p=514"},"modified":"2019-10-11T09:39:43","modified_gmt":"2019-10-11T04:09:43","slug":"direct-memory-access-dma","status":"publish","type":"post","link":"https:\/\/binaryterms.com\/direct-memory-access-dma.html","title":{"rendered":"Direct Memory Access (DMA)"},"content":{"rendered":"<p><strong>Direct Memory Access<\/strong> (DMA) transfers the block of data between the <em>memory<\/em> and <em>peripheral devices<\/em> of the system,<strong> without the participation <\/strong>of the <strong>processor<\/strong>. The unit that controls the activity of accessing memory directly is called a <strong>DMA controller<\/strong>.<\/p>\n<p>The processor <strong>relinquishes the system bus<\/strong> for a few clock cycles. So, the DMA controller can accomplish the task of data transfer via the system bus. In this section, we will study in brief about DMA, DMA controller, registers, advantages and disadvantages. So let us start.<\/p>\n<h2>Content: Direct Memory Access in Computer Architecture<\/h2>\n<ol>\n<li><a href=\"#WhatisDMAandWhyitisused?\">What is DMA and Why it is used?<\/a><\/li>\n<li><a href=\"#DMAController'sWorking\">DMA Controller&#8217;s Working<\/a><\/li>\n<li><a href=\"#DMABlockDiagram\">DMA Block Diagram<\/a><\/li>\n<li><a href=\"#AdvantagesandDisadvantages\">Advantages and Disadvantages<\/a><\/li>\n<li><a href=\"#KeyTakeaways\">Key Takeaways<\/a><\/li>\n<\/ol>\n<p><a name=\"WhatisDMAandWhyitisused?\"><\/a><\/p>\n<h3>What is DMA and Why it is used?<\/h3>\n<p>Direct memory access (DMA) is a <strong>mode of data transfer<\/strong> between the memory and I\/O devices. This happens <strong>without the involvement<\/strong> of the processor. We have two other methods of data transfer,<strong> programmed I\/O<\/strong> and <strong>Interrupt driven I\/O<\/strong>. Let\u2019s revise each and get acknowledge with their drawbacks.<\/p>\n<p>In <strong>programmed I\/O<\/strong>, the processor keeps on scanning whether any device is ready for data transfer. If an I\/O device is ready, the processor <strong>fully dedicates<\/strong>\u00a0itself in transferring the data between I\/O and memory. It transfers data at a <strong>high rate, but it can\u2019t get involved in any other activity<\/strong> during data transfer. This is the major <strong>drawback<\/strong> of programmed I\/O.<\/p>\n<p>In <strong>Interrupt driven I\/O<\/strong>, whenever the device is ready for data transfer, then it raises an <strong>interrupt to processor<\/strong>. Processor completes executing its ongoing instruction and saves its current state. It then switches to data transfer which causes a <strong>delay<\/strong>. Here, the processor doesn&#8217;t keep scanning for peripherals ready for data transfer. But, it is<strong> fully involved<\/strong> in the data transfer process. So, it is also not an effective way of data transfer.<\/p>\n<p>The above two modes of data transfer are not useful for transferring a large block of data. But, the DMA controller completes this task at a faster rate and is also effective for transfer of large data block.<\/p>\n<p>The DMA controller transfers the data in three modes:<\/p>\n<ol>\n<li><strong>Burst Mode: <\/strong>Here, once the DMA controller gains the charge of the system bus, then it releases the system bus only after <strong>completion<\/strong> of data transfer. Till then the CPU has to wait for the system buses.<\/li>\n<li><strong>Cycle Stealing Mode:<\/strong> In this mode, the DMA controller <strong>forces<\/strong> the CPU to stop its operation and <strong>relinquish the control over the bus\u00a0<\/strong>for a <strong>short term<\/strong> to DMA controller. After the <strong>transfer of every byte<\/strong>, the DMA controller <strong>releases<\/strong> the <strong>bus <\/strong>and then again requests for the system bus. In this way, the DMA controller steals the clock cycle for transferring every byte.<\/li>\n<li><strong>Transparent Mode:<\/strong> Here, the DMA controller takes the charge of system bus only if the <strong>processor does not require the system bus<\/strong>.<\/li>\n<\/ol>\n<p><a name=\"DMAController'sWorking\"><\/a><\/p>\n<h3>Direct Memory Access Controller &amp; it&#8217;s Working<\/h3>\n<p>DMA controller is a <strong>hardware unit<\/strong> that allows I\/O devices to access memory directly without the participation of the processor. Here, we will discuss the working of the DMA controller. Below we have the diagram of DMA controller that explains its working:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-521\" src=\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg\" alt=\"Direct Memory Access controller data transfer\" width=\"600\" height=\"435\" srcset=\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg 600w, https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer-300x218.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<ol>\n<li>Whenever an I\/O device wants to transfer the data to or from memory, it sends the DMA request (<strong>DRQ<\/strong>) to the DMA controller. DMA controller accepts this DRQ and asks the CPU to hold for a few clock cycles by sending it the Hold request (<strong>HLD<\/strong>).<\/li>\n<li>CPU receives the Hold request (HLD) from DMA controller and relinquishes the bus and sends the Hold acknowledgement (<strong>HLDA<\/strong>) to DMA controller.<\/li>\n<li>After receiving the Hold acknowledgement (HLDA), DMA controller acknowledges I\/O device <strong>(DACK)<\/strong> that the data transfer can be performed and DMA controller takes the charge of the system bus and transfers the data to or from memory.<\/li>\n<li>When the data transfer is accomplished, the DMA raise an <strong>interrupt<\/strong> to let know the processor that the task of data transfer is finished and the processor can take control over the bus again and start processing where it has left.<\/li>\n<\/ol>\n<p>Now the DMA controller can be a separate unit that is shared by various I\/O devices, or it can also be a part of the I\/O device interface.<br \/>\n<a name=\"DMABlockDiagram\"><\/a><\/p>\n<h3>Direct Memory Access Diagram<\/h3>\n<p>After exploring the working of DMA controller, let us discuss the block diagram of the DMA controller. Below we have a block diagram of DMA controller.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-529\" src=\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-diagram.jpg\" alt=\"Direct Memory Access diagram\" width=\"500\" height=\"479\" srcset=\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-diagram.jpg 500w, https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-diagram-300x287.jpg 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/p>\n<p>Whenever a processor is requested to read or write a block of data, i.e. transfer a block of data, it instructs the DMA controller by sending the following information.<\/p>\n<ol>\n<li>The first information is whether the data has to be read from memory or the data has to be written to the memory. It passes this information via <strong>read or write control lines<\/strong> that is between the processor and DMA controllers <strong>control logic unit<\/strong>.<\/li>\n<li>The processor also provides the<strong> starting address<\/strong> of\/ for the data block in the memory, from where the data block in memory has to be read or where the data block has to be written in memory. DMA controller stores this in its <strong>address register<\/strong>. It is also called the <strong>starting address register<\/strong>.<\/li>\n<li>The processor also sends the <strong>word count<\/strong>, i.e. how many words are to be read or written. It stores this information in the <strong>data count<\/strong> or the <strong>word count<\/strong> register.<\/li>\n<li>The most important is the <strong>address of I\/O device<\/strong> that wants to read or write data. This information is stored in the <strong>data register.<\/strong><\/li>\n<\/ol>\n<p><a name=\"AdvantagesandDisadvantages\"><\/a><\/p>\n<h3>Direct Memory Access Advantages and Disadvantages<\/h3>\n<h4>Advantages:<\/h4>\n<ol>\n<li>Transferring the data without the involvement of the processor will <strong>speed up<\/strong> the read-write task.<\/li>\n<li>DMA <strong>reduces the clock cycle<\/strong> requires to read or write a block of data.<\/li>\n<li>Implementing DMA also <strong>reduces the overhead<\/strong> of the processor.<\/li>\n<\/ol>\n<h4>Disadvantages<\/h4>\n<ol>\n<li>As it is a hardware unit, it would <strong>cost<\/strong> to implement a DMA controller in the system.<\/li>\n<li>Cache<strong> coherence <\/strong>problem can occur while using DMA controller.<\/li>\n<\/ol>\n<p><a name=\"KeyTakeaways\"><\/a><\/p>\n<div id=\"keytake\">\n<h3>Key Takeaways<\/h3>\n<ul>\n<li>DMA is an abbreviation of <strong>direct memory access<\/strong>.<\/li>\n<li>DMA is a <strong>method of data transfer<\/strong> between main memory and peripheral devices.<\/li>\n<li>The hardware unit that controls the DMA transfer is a <strong>DMA controller<\/strong>.<\/li>\n<li>DMA controller transfers the data to and from memory <strong>without the participation of the processor<\/strong>.<\/li>\n<li>The processor provides the <strong>start address<\/strong> and the <strong>word count<\/strong> of the data block which is transferred to or from memory to the DMA controller and <strong>frees the bus for DMA controller<\/strong> to transfer the block of data.<\/li>\n<li>DMA controller transfers the data block at the <strong>faster rate<\/strong> as data is directly accessed by I\/O devices and is not required to pass through the processor which save the clock cycles.<\/li>\n<li>DMA controller transfers the block of data to and from memory in three modes <strong>burst mode<\/strong>, <strong>cycle steal mode<\/strong> and <strong>transparent mode<\/strong>.<\/li>\n<li>DMA can be configured in various ways it can be a part of individual I\/O devices, or all the peripherals attached to the system may share the same DMA controller.<\/li>\n<\/ul>\n<\/div>\n<p>Thus the DMA controller is a convenient mode of data transfer. It is preferred over the programmed I\/O and Interrupt-driven I\/O mode of data transfer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Direct Memory Access (DMA) transfers the block of data between the memory and peripheral devices of the system, without the participation of the processor. The unit that controls the activity of accessing memory directly is called a DMA controller. The processor relinquishes the system bus for a few clock cycles. So, the DMA controller can [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-514","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-computer-architecture","7":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is Direct Memory Access (DMA)? DMA Controller, Block Diagram, Advantages &amp; Disadvantages - Binary Terms<\/title>\n<meta name=\"description\" content=\"Direct Memory Access (DMA) transfers the data directly between the memory and peripheral devices without the intervention of CPU. The unit that controls the action of direct memory access is called a DMA controller.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is Direct Memory Access (DMA)? DMA Controller, Block Diagram, Advantages &amp; Disadvantages - Binary Terms\" \/>\n<meta property=\"og:description\" content=\"Direct Memory Access (DMA) transfers the data directly between the memory and peripheral devices without the intervention of CPU. The unit that controls the action of direct memory access is called a DMA controller.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\" \/>\n<meta property=\"og:site_name\" content=\"Binary Terms\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-10T11:54:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-10-11T04:09:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg\" \/>\n<meta name=\"author\" content=\"Neha T\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Neha T\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#article\",\"isPartOf\":{\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\"},\"author\":{\"name\":\"Neha T\",\"@id\":\"https:\/\/binaryterms.com\/#\/schema\/person\/e495f1d57f5c0a4c521cc3dba95661fe\"},\"headline\":\"Direct Memory Access (DMA)\",\"datePublished\":\"2019-10-10T11:54:29+00:00\",\"dateModified\":\"2019-10-11T04:09:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\"},\"wordCount\":1202,\"commentCount\":19,\"publisher\":{\"@id\":\"https:\/\/binaryterms.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage\"},\"thumbnailUrl\":\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg\",\"articleSection\":[\"Computer Architecture\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\",\"url\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\",\"name\":\"What is Direct Memory Access (DMA)? DMA Controller, Block Diagram, Advantages & Disadvantages - Binary Terms\",\"isPartOf\":{\"@id\":\"https:\/\/binaryterms.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage\"},\"image\":{\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage\"},\"thumbnailUrl\":\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg\",\"datePublished\":\"2019-10-10T11:54:29+00:00\",\"dateModified\":\"2019-10-11T04:09:43+00:00\",\"description\":\"Direct Memory Access (DMA) transfers the data directly between the memory and peripheral devices without the intervention of CPU. The unit that controls the action of direct memory access is called a DMA controller.\",\"breadcrumb\":{\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/binaryterms.com\/direct-memory-access-dma.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage\",\"url\":\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg\",\"contentUrl\":\"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg\",\"width\":600,\"height\":435,\"caption\":\"Direct Memory Access controller data transfer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/binaryterms.com\/direct-memory-access-dma.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/binaryterms.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Direct Memory Access (DMA)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/binaryterms.com\/#website\",\"url\":\"https:\/\/binaryterms.com\/\",\"name\":\"Binary Terms\",\"description\":\"The Computer Science &amp; IT Guide\",\"publisher\":{\"@id\":\"https:\/\/binaryterms.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/binaryterms.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/binaryterms.com\/#organization\",\"name\":\"Binary Terms\",\"url\":\"https:\/\/binaryterms.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/binaryterms.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/binaryterms.com\/wp-content\/uploads\/2020\/05\/binary-terms-logo1.png\",\"contentUrl\":\"https:\/\/binaryterms.com\/wp-content\/uploads\/2020\/05\/binary-terms-logo1.png\",\"width\":400,\"height\":63,\"caption\":\"Binary Terms\"},\"image\":{\"@id\":\"https:\/\/binaryterms.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/binaryterms.com\/#\/schema\/person\/e495f1d57f5c0a4c521cc3dba95661fe\",\"name\":\"Neha T\",\"url\":\"https:\/\/binaryterms.com\/author\/author\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is Direct Memory Access (DMA)? DMA Controller, Block Diagram, Advantages & Disadvantages - Binary Terms","description":"Direct Memory Access (DMA) transfers the data directly between the memory and peripheral devices without the intervention of CPU. The unit that controls the action of direct memory access is called a DMA controller.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/binaryterms.com\/direct-memory-access-dma.html","og_locale":"en_GB","og_type":"article","og_title":"What is Direct Memory Access (DMA)? DMA Controller, Block Diagram, Advantages & Disadvantages - Binary Terms","og_description":"Direct Memory Access (DMA) transfers the data directly between the memory and peripheral devices without the intervention of CPU. The unit that controls the action of direct memory access is called a DMA controller.","og_url":"https:\/\/binaryterms.com\/direct-memory-access-dma.html","og_site_name":"Binary Terms","article_published_time":"2019-10-10T11:54:29+00:00","article_modified_time":"2019-10-11T04:09:43+00:00","og_image":[{"url":"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg","type":"","width":"","height":""}],"author":"Neha T","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Neha T","Estimated reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#article","isPartOf":{"@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html"},"author":{"name":"Neha T","@id":"https:\/\/binaryterms.com\/#\/schema\/person\/e495f1d57f5c0a4c521cc3dba95661fe"},"headline":"Direct Memory Access (DMA)","datePublished":"2019-10-10T11:54:29+00:00","dateModified":"2019-10-11T04:09:43+00:00","mainEntityOfPage":{"@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html"},"wordCount":1202,"commentCount":19,"publisher":{"@id":"https:\/\/binaryterms.com\/#organization"},"image":{"@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage"},"thumbnailUrl":"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg","articleSection":["Computer Architecture"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/binaryterms.com\/direct-memory-access-dma.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html","url":"https:\/\/binaryterms.com\/direct-memory-access-dma.html","name":"What is Direct Memory Access (DMA)? DMA Controller, Block Diagram, Advantages & Disadvantages - Binary Terms","isPartOf":{"@id":"https:\/\/binaryterms.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage"},"image":{"@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage"},"thumbnailUrl":"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg","datePublished":"2019-10-10T11:54:29+00:00","dateModified":"2019-10-11T04:09:43+00:00","description":"Direct Memory Access (DMA) transfers the data directly between the memory and peripheral devices without the intervention of CPU. The unit that controls the action of direct memory access is called a DMA controller.","breadcrumb":{"@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/binaryterms.com\/direct-memory-access-dma.html"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#primaryimage","url":"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg","contentUrl":"https:\/\/binaryterms.com\/wp-content\/uploads\/2019\/10\/Direct-Memory-Access-controller-data-transfer.jpg","width":600,"height":435,"caption":"Direct Memory Access controller data transfer"},{"@type":"BreadcrumbList","@id":"https:\/\/binaryterms.com\/direct-memory-access-dma.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/binaryterms.com\/"},{"@type":"ListItem","position":2,"name":"Direct Memory Access (DMA)"}]},{"@type":"WebSite","@id":"https:\/\/binaryterms.com\/#website","url":"https:\/\/binaryterms.com\/","name":"Binary Terms","description":"The Computer Science &amp; IT Guide","publisher":{"@id":"https:\/\/binaryterms.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/binaryterms.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/binaryterms.com\/#organization","name":"Binary Terms","url":"https:\/\/binaryterms.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/binaryterms.com\/#\/schema\/logo\/image\/","url":"https:\/\/binaryterms.com\/wp-content\/uploads\/2020\/05\/binary-terms-logo1.png","contentUrl":"https:\/\/binaryterms.com\/wp-content\/uploads\/2020\/05\/binary-terms-logo1.png","width":400,"height":63,"caption":"Binary Terms"},"image":{"@id":"https:\/\/binaryterms.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/binaryterms.com\/#\/schema\/person\/e495f1d57f5c0a4c521cc3dba95661fe","name":"Neha T","url":"https:\/\/binaryterms.com\/author\/author"}]}},"_links":{"self":[{"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/posts\/514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":0,"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/posts\/514\/revisions"}],"wp:attachment":[{"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/media?parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/categories?post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/binaryterms.com\/wp-json\/wp\/v2\/tags?post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}