ARM MMU에 대해서 궁금하게 있어서 질문올립니다.

suh1978의 이미지

작은 (정말 작은 ^^) 커널(blueos.kldp.net)을 구현하고 있는데요

처음에는 물리주소를 사용하다가 이제는 mmu/instruction cache등을

설정하려고 합니다.

ARM MMU에 대한 것중에 책이나 메뉴얼을 봐도 잘 이해안되는게 있어서

도움을 받고 싶어서 질문올립니다.

질문1.

제가 사용하는 보드는 물리주소 0x0 은 1MB만큼의 NOR가 있습니다.

그리고 SDRAM은 0x30000000 부터 매핑되어 있습니다.

예를들어 0x30000000을 MMU를 이용해서 가상주소 0x0으로 설정했다고

한다면 벡터테이블은 물리주소기준으로 0x0 부터가 되는것인가요,

아니면 0x30000000 부터가 되는것인가요.

질문2.

페이지 테이블을 설정할때 2레벨 디스크립터에 대한것입니다.

2레벨 디스크립터의 포맷을 보면 AP0 ~ AP3 까지의 접근권한 설정이

각 0 ~ 3까지의 서브 페이지별로 나눠져 있습니다.

여기서 AP0 부터 AP3까지의 4개의 서브페이지는 무엇을 말하는것인가요

읽어주셔서 감사합니다. ㅎ

suh1978의 이미지

열정은 남자의 미래다! - suki1978 style, free style

질문1. MMU를 통해서 메모리 0x30000000을 0x0으로 매핑해주었으니

MMU가 enable 되는 그 후부터의 익셉션 벡터는 가상주소 0x0 (물리주소 0x300000000)이

동작됩니다. (kelp 의 powerc20 님의 답변이 도움이 되었습니다.)

질문2. 페이지 테이블을 설정할때 보면 서브페이지라고 하는 것의 권한을 AP0 ~ AP3을

이용한다는 것이 있는데요, 이것은 1MB의 섹션에 대해서 64kb, 4kb로 페이지를 설정할때만

각각 16kb, 1kb로 나누어서 관리함을 의미합니다. 1MB 섹션이나 1kb로 페이지를 설정할때는

해당사항이 없다고 합니다. (kelp 의 powerc20 님의 답변과, ARM 관련 메뉴얼참조하였습니다.)

하나로 관리한다고 했는데 64k, 4k에 해당하는 페이지 테이블의 구성은 AP0 ~ AP3까지

총 4개의 권한설정 비트가 있고, 1k에 해당하는 페이지 테이블의 구성은 AP 하나만

존재하고 있었습니다.

# 휴. MMU 구현해보려고 컴퓨터 앞에 앉았다가 10줄 코딩도 못하고 또다시 주말을 넘겼습니다.


열정은 남자의 미래다! - suki1978 style, free style

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.