[009주차 (2013-06-22)에서 토론을 계속


#1

009주차 (2013-06-22) Arm System Developer's Guide (Ch14~끝)에서 토론을 계속:

Issues (Clear)

  • [x] 1. 인터럽트에서 VIC 컨트롤러는 ARM에서 항상 쓰는가? [#53]

    설계하는 것은 vendor 마음이기 때문에, 비슷한 기능을 가진 컨트롤러를 쓰기도 한다.


  • [x] 2. 논리캐시 vs. 물리캐시 중 어떤캐시가 더 좋은것인가? [#54]

    논리캐시는 타이밍 관점에서 좋지만 aliasing 문제가 있기 때문에, 최근에는 물리캐시로 움직이고 있다.


  • [x] 3. Cache lock은 일반 program에서 가능한가? 그리고 실제로 사용되는 예제가 있을까? [#55]

    불가능하다. 보통 exception handler에서 사용한다. 보통 RTOS에서 사용하긴 하지만, Linux에서는 사용할 일이 없을까 생각한다.


  • [x] 4. Memory-mapped 방식이 이미 하드웨적으로 address가 셋팅된 것이 아닌가? 소프트웨어 적으로 변경이 가능한가? [#56]

    기본적으로 Physical Address는 고정되어 있다. 단 MMU를 통해 Virtual Address mapping을 변경할 수 있다. (예외: 일부 SoC의 경우 bridge단에서 register 설정으로 slave port별로 base address및 size를 변경하기도 한다.)


  • [x] 5. 메모리의 상태 표시 및 수정하기 위해 사용하는 Peek & Poke 방식이란? [#57]

    Peek & Poke는 memory read/write에 대한 BASIC적인 표현입니다. IO mapped IO의 경우 IO가 따로 있어서 IO read/write와 구분하기 위한 표현입니다. 참고로 ARM은 memory mapped IO이므로 별도의 IO read/write 명령어가 필요없습니다.

    integer_variable = PEEK(address)
    
    POKE address, value
    

    (Ref.: [PEEK and POKE] (https://en.wikipedia.org/wiki/PEEK_and_POKE))