JadeKim
259
2021-06-29 15:14:04
10
234

CPU와 기억장치


CPU가 기억장치에 접근할때 기억 장치의 주소를 주소 버스를 통하여 보내고 그 주소에있는 데이터를 읽기, 쓰기를 한다고 알고 있습니다. 그렇다면 CPU는 어떻게 기억 장치의 주소를 아는 것인가요?? 기억 장치도 CPU에 주소를 알려줘야 CPU가 주소를 기억하고 보낼 수 있는 것 아닌가요?? CPU에서 기억 장치로 단일 방향성을 띄는 주소 버스로서는 기억 장치에서 CPU로 주소를 알려주는 것은 아닐테고...


어떤 분에게 질문을 했더니 "아니다. CPU가 마음대로 메모리를 사용한다"라고 답변을 해주더군요. 제가 알고 싶은 것은 어떻게 그 메모리의 주소를 CPU가 알고 있느냐는 것인데... 

0
  • 답변 10

  • defult
    14k
    2021-06-29 15:24:29

    보조저장장치에서 데이터를 찾는방식은 단순합니다.

    전부 뒤져서 나올때까지 찾는식이니까요.


    무작정 뒤질수만은 없으니 캐쉬나 OS의 색인 처리가 나온거고요.


    OS상에서의 보조부터 캐쉬등 엄밀히말하면 엄청 복잡한 처리로 공학이론 전반에대한 이해부터 cpu제조사와 OS제조사의 비공개기술등 이런 커뮤니티 답변으로 이해 가능한 영역이 아닙니다

  • illuza
    1k
    2021-06-29 15:31:25

    Counter register라고 CPU가 다음에 읽을 코드 주소를 알려주는 장치가 있습니다.

    그 코드 주소 안에 읽어야할 메모리 주소도 있고 register도 있고 그렇겠죠.


  • 상저씨
    830
    2021-06-29 15:41:03 작성 2021-06-29 15:41:59 수정됨

    cpu에서 처리할 명령어의 내부 operand에 주소가 있습니다.


    https://namu.wiki/w/%EB%AA%85%EB%A0%B9%EC%96%B4%20%EC%A7%91%ED%95%A9


  • 인그니야
    1k
    2021-06-29 15:49:08

    질문자의 의도는, 여러 장치들 중 CPU가 어떻게 특정 저장장치의 주소를 알아서 접근할 수 있느냐 인 것같은데, 음 CPU 데이터 시트를 보시면 CPU에 많은 핀들이 있을 겁니다.

    그 무수히 많은 핀들은 각각 PCIe 버스용, Uart용 등등 용도가 지정되어 있고, 저장장치도 자신에게 맞는 핀에 연결이 되어 있겠지요.


    이 Pin들은 고정이므로, CPU 입장에서 각 Pin마다 고정된 주소를 할당합니다. 저장장치가 연결된 Pin도 CPU 가 고정으로 할당한 주소값이 있으므로, CPU가 접근할 수 있는겁니다.

  • JadeKim
    259
    2021-06-29 16:17:57

    @인그니야

    CPU에서 각 Pin마다 주소를 할당한다고 하셨는데 언제 할당이 되는 건가요? CPU와 저장장치가 서로 최초로 연결됬을때?

  • 그래안그래
    1k
    2021-06-29 16:25:03
    예약된 핀, 주소가 있습니다.
    특정어드레스는 장치에의해 예약되어있습니다.
  • illuza
    1k
    2021-06-29 16:36:47

    OS가 할당합니다. 부팅할 때 예약되죠.


  • 애프미
    207
    2021-06-29 16:42:29

    처음 시작할때는 0번지부터 읽기 시작하는데 이것은 os를 부팅하는 boot loader가 담당하고 부팅하고 난 이후에는 os가 관할합니다.

  • 인그니야
    1k
    2021-06-29 17:26:35 작성 2021-06-29 17:27:35 수정됨

    CPU에서 할당하는 건 애초에 칩 설계 때부터 되어 있습니다.

    CPU 모델마다 이러한 설계에 차이가 있고 그러므로 각각 맞춤용 어드레스 코드가 있죠.

    PC같은 건 더 복잡하지만, 임베디드 장치의 경우, 커널을 빌드할 때 타겟 CPU의 어드레스 코드를 같이 빌드합니다.

    그리고 장치에서 커널이 실행되면, 같이 빌드되었던 어드레스 코드를 참고해서 원하는 장치가 연결된 Pin에 접근함으로써 장치랑 통신합니다.

  • JadeKim
    259
    2021-06-29 17:41:14

    다들 답변 감사합니다~ 답변을 여러번 다시 읽어 내려가면서 이해하는데 도움이 되었습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.