임베디드 보드에서 메모리 접근에 대해 질문이 있습니다.

katalog의 이미지

안녕하세요. 임베디드를 공부하고 있는 학생인데요

제가 공부하다 보니까 메모리 접근에 대한 부분에 궁금증이 생겨 질문을 올립니다.

이런저런 매뉴얼들을 보니 메모리 접근에 DMA, MMU, Memory Controller등이 들어가던데

제가 이해하기로는 LDR이나 STR 같은 명령이 호출되면

DMA -> MMU -> Memory Controller -> CPLD -> SDRAM / NAND FLASH

순서로 접근해서 메모리 주소를 찾아내는것 같은데 제대로 보고 있는건지 궁금합니다 ^^;

그리고 이게 아니라면 어떤 순서로 들어가는지, 그리고 MMU가 enable 됐을때랑 아닐때

어떻게 다르게 들어가게 되는지 궁금합니다..

답변 부탁드리고.. 행복한 하루 되세요!

익명 사용자의 이미지

용어 개념 정립부터 다시 하셔야 할 것 같습니다.

CPU에서는 MMU가 있다면 MMU에서 메모리 주소를 변환하고 해당 메모리에 접근합니다. 이 과정에서 Memory Controller는 해당 메모리 주소에 연결된 장치와의 접근을 제어합니다. (SDRAM이라면 SDRAM에 맞는 하드웨어 시그널을 발생시키고 NAND나 CPLD 같은 장치라면 그에 맞게 시그널을 발생시키는 역할입니다) DMA는 메모리를 고속 전송하기 위한 방식이며 이것을 통제하는 레지스터에 DMA 동작을 지정하고 개시하면 메모리 영역간의 전송이 이루어지는 것입니다. Memory Controller부터의 과정은 전부 물리적인 주소를 사용하며 MMU는 가상 메모리 주소에서 물리 주소의 변환을 담당합니다.

[[MMU] -> Memory Controller] -> NAND/CPLD/SDRAM ...

DMA Controller는 CPU에 내장된 경우도 있고 외부에 따로 나와 있는 경우도 있습니다. 단순히 레지스터 제어의 측면에서 본다면 CPU에 연결된 주변장치 정도로 생각하셔도 됩니다. (Memory Controller도 유사합니다)

MMU가 없을 경우에는 CPU에서 발생시킨 주소는 무조건 CPU의 물리적 Address Pin에 1:1로 대응됩니다. MMU가 있을 경우에는 명령어에서 발생시킨 주소가 항상 물리적 주소와 일치하지는 않습니다. 가상의 주소를 만들 수 있고 이것을 실제 물리 주소와 매핑시키는 장치가 MMU입니다.

익명 사용자의 이미지

답변 감사합니다. 많은 참고가 되었습니다. ^^

익명 사용자의 이미지

답변 감사합니다 ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.