[컴퓨터 공학 기초 강의] 10강. CPU의 내부 구성 - 레지스터

Sdílet
Vložit
  • čas přidán 27. 08. 2024

Komentáře • 17

  • @HanbitMedia93
    @HanbitMedia93  Před rokem +6

    00:00 인트로
    01:48 반드시 알아야 할 레지스터 1
    (프로그램 카운터, 명령어 레지스터, 메모리 주소 레지스터, 메모리 버퍼 레지스터)
    08:46 순차적인 흐름이 끊기는 경우
    09:37 반드시 알아야 할 레지스터 2
    (플래그 레지스터, 범용 레지스터, 스택 포인터, 베이스 레지스터)
    11:04 특정 레지스터를 이용한 주소 지정 방식(1) 스택 주소 지정 방식
    12:55 스택은 어디에 있나요?
    13:19 특정 레지스터를 이용한 주소 지정 방식(2) 변위 주소 지정 방식
    15:25 상대 주소 지정 방식
    16:40 베이스 레지스터 주소 지정 방식

  • @tomaftr817
    @tomaftr817 Před 2 měsíci +1

    진짜진짜 명강의😊 이렇게 설명을 재밌게. 쏙쏙 들어오게 해주시니 넘 감사해요

  • @jckim3814
    @jckim3814 Před 20 dny

    원래는 강의만 보려했는데 책도 사야겠네요. 쉽게 잘알려줘서 고맙습니다 😮

  • @user-xj2od5ph4m
    @user-xj2od5ph4m Před 11 měsíci +1

    강사님 강의 잘 듣고 있습니다. 좋은 강의 감사합니다!
    프로그램 실행 과정과 상대 주소 지정 방식에 대해 질문 있습니다.
    프로그램 실행 과정에서 1000번지의 값을 MBR로 가져온 직후, 즉 1000번지의 명령어가 실행되기 전에 PC의 카운터가 증가한다고 설명해주셨습니다.
    그렇다면 만약 1000번지에 "(PC + 2)번지의 명령어를 실행하라"라는 명령어가 저장되어 있다면
    이 명령어가 실행될 시점에서 PC는 이미 값이 증가해 1001번지를 가리키고 있게 되는데,
    그럼 결과적으로는 현재 실행 중인 명령어가 있던 1000번지에 2를 더한 1002번지가 아니라 1003번지의 명령어를 실행하게 되는 건가요?

    • @tori599
      @tori599 Před 4 měsíci

      1002로 가죠 1003으로 가면 1000번지의 명령을 건너뛴건데요?

  • @uoiytrw_uoi
    @uoiytrw_uoi Před 7 měsíci +1

    8:47

  • @user-dv5su9rn1b
    @user-dv5su9rn1b Před 9 měsíci

    프로그램 카운터에 저장되는 명령어 주소와 메모리 주소 레지스터에 저장되는 메모리 주소는 다른 거겠죠? 혹시 두 주소간의 상관관계가 어떻게 되나요?

    • @kangminchul
      @kangminchul Před 9 měsíci

      안녕하세요
      프로그램 카운터에는 '다음 실행할 명령어 주소'라는 명확한 목적을 가진 주소 정보가 저장되는 레지스터,
      메모리 주소 레지스터는 '일반적인 주소가 저장되는 레지스터'라 보셔도 됩니다.

    • @user-dv5su9rn1b
      @user-dv5su9rn1b Před 9 měsíci

      @@kangminchul 와 칼답 감사합니다.

  • @user-ez9oh2cu7y
    @user-ez9oh2cu7y Před rokem +8

    여기서부터 좀 머리아프네요

    • @MSTechtube2023
      @MSTechtube2023 Před rokem +12

      컴퓨터 안에는 레지스터라는 것이 있어요. 이 레지스터는 중요한 역할을 해요. 예를 들어서 프로그램 카운터(PC)는 다음으로 실행할 명령어를 가리키고, 명령어 레지스터(IR)는 현재 실행 중인 명령어를 저장해요. 메모리 주소 레지스터(MAR)는 메모리에서 데이터를 읽거나 쓸 때 사용하고, 메모리 버퍼 레지스터(MBR)는 메모리와 컴퓨터 사이에서 데이터를 전송하는 데 사용돼요.
      또한, 플래그 레지스터(FR)는 명령어를 실행한 결과에 대한 정보를 저장해요. 범용 레지스터(GPR)는 데이터를 저장하고 처리하는 데 사용되며, 스택 포인터(SP)는 스택에서 데이터를 가져오거나 넣을 때 사용돼요. 마지막으로 베이스 레지스터(BR)는 메모리에서 데이터 구조체를 참조할 때 사용됩니다.
      이 레지스터들은 모두 중요한 역할을 하며, 컴퓨터가 프로그램을 실행할 때 함께 작동해요. 컴퓨터는 메모리에서 명령어를 읽어와 명령어 레지스터에 저장하고, 그 명령어를 실행해요. 데이터를 처리할 때는 범용 레지스터를 사용하고, 스택 영역에서 데이터를 가져오거나 넣을 때는 스택 포인터를 사용해요. 이렇게 레지스터들이 함께 작동하면 컴퓨터가 프로그램을 처리할 수 있게 됩니다.

    • @MSTechtube2023
      @MSTechtube2023 Před rokem +12

      예를들어서, 컴퓨터가 계산기처럼 숫자를 더하거나 빼는 일을 한다고 가정해 봅시다. 숫자 2와 3을 더하는 명령어를 실행하기 위해서는 프로그램 카운터(PC)가 다음 실행할 명령어의 주소를 가리켜야 해요. 그런 다음, 메모리에서 명령어를 읽어와 명령어 레지스터(IR)에 저장해요. 이 경우 IR에는 숫자 2와 3을 더하는 명령어가 저장됩니다.
      그 다음, 범용 레지스터(GPR) 중 하나를 선택해서 2와 3을 저장해요. 이 레지스터는 CPU에서 데이터를 처리하는 데 사용돼요. 이번 예시에서는 AX라는 범용 레지스터를 선택해서 2와 3을 저장하겠습니다.
      그러면 CPU는 AX에 있는 2와 3을 더하고 그 결과를 AX에 저장해요. 이때, 플래그 레지스터(FR)는 더한 결과가 양수인지 음수인지를 판별하여 저장해요.
      컴퓨터는 이제 메모리 버퍼 레지스터(MBR)를 사용해서 계산 결과를 메모리에 저장합니다. 이때, 메모리 주소 레지스터(MAR)는 메모리에서 데이터를 저장할 위치를 가리키게 됩니다.
      이러한 작업을 수행할 때, 컴퓨터는 각 레지스터들을 함께 사용해요. 이렇게 레지스터들이 서로 협력하여 프로그램을 처리하면서 데이터를 저장하고 처리할 수 있게 되는 것이죠.

    • @MSTechtube2023
      @MSTechtube2023 Před rokem +10

      그래도 어려우시면 조금 더 쉽게 처리 과정을 설명드릴게요.
      영상에도 처리 과정이 소개되었던 거지만, 아주 아주 심플하게 표시하면 아래와 같아요.
      [심플한 처리 과정 요약]
      1. IR , GPR -> 2. MBR, MAR, BR -> 3. SP
      1. CPU는 메모리에서 명령어를 로드하고 IR에 저장한 후 해당 명령어를 해석하여 데이터를 처리. 이때(해석 및 처리 시) GPR이 데이터를 저장하고 처리
      2. 이후(저장 및 처리 후) MBR을 사용해서 데이터를 메모리에 저장하거나 메모리에서 읽어옴. 이러한 과정에서 MAR과 BR이 사용됨.
      3. 마지막으로 프로그램이 실행되는 동안 스택 영역에서 임시 데이터를 저장하고 함수 호출을 처리하는 데 SP가 사용됨.
      이해 되셨길 바라며, 영상에 더 자세히 소개되어 있으니 영상을 참고 바랍니다.
      그래도 어려우시면 Assembly register와 함께 공부해보세요.

    • @asdf-zi3hz
      @asdf-zi3hz Před rokem

      @@MSTechtube2023 감사합니다 짧게 정리해 주시니 이해하기 편하네요

    • @user-tq6uz9dc3y
      @user-tq6uz9dc3y Před rokem

      @@MSTechtube2023 정리 맛있네요~