준티
757
2019-05-15 22:14:36 작성 2019-05-16 11:09:57 수정됨
3
192

CPU 동작방식, CPU bit수, 레지스터 관계에 대해 질문드립니다


안녕하세요. 비전공자로써 뒤늦게 컴퓨터 사이언스 공부하고 있는데 헷갈리는 부분이 있어 질문드립니다.


1. CPU 처리방식에 대한 질문
CPU는 I/O Bus를 통해서 메모리로부터 여러가지 정보들(데이터, 명령어, 주소 등)을 읽어서
CPU 내의 여러가지 레지스터들에 다 저장한 뒤, 연산을 수행하는게 맞나요?

예를 들면 100번이라는 메모리의 주소에 접근해서, 데이터도 읽어오고 명령어도 읽어오고 다음 수행할 주소등도 읽어와서 CPU내 여러 레지스터들에 해당 정보들을 저장해놓은 뒤, 연산을 시작하는건가요?

즉, 특정 메모리 주소에 딱 접근해서 데이터(+명령어 등등)를 주루루루룩 읽어서 레지스터에 저장하고, 다 읽으면 연산하는 건지
한번에 32bit만 읽고(32bit cpu라고 가정) 수행하고, 읽고 수행하는 건지 궁금합니다
- 전자라면 최대 어느정도의 데이터 까지 읽어오나요?
- 후자라면 연산을 시작해야할 시점을 어떻게 알 수 있나요?

2. 32bit CPU, 64 bit CPU
레지스터의 최대 크기를 나타내는것이 맞나요?
레지스터의 종류를 보니 다음 메모리 주소를 저장하는 EIP라는 레지스터가 있더군요.

32bit CPU가 4GB 램까지만 지원하는 이유가 
32bit CPU의 경우 레지스터의 크기가 최대 32bit이므로, EIP 레지스터의 크기도 32bit가 되고, 32bit가 담을 수 있는 주소의 크기가 최대 4GB 까지이기 떄문이 맞을까요?

답변 부탁드립니다. 제가 잘못 이해하고 있는 부분 지적해주시면 매우 감사하곘습니다.

0
0
  • 답변 3

  • 니플
    32k
    2019-05-15 22:18:37

    꼭 과제같이 보이네요 ㅎㅎ

    글씨가 안보이는데 글씨를 검은색으로 바꿀 수 있을까요?

    0
  • 지붕뚫고높이차
    599
    2019-05-15 22:52:55 작성 2019-05-16 13:28:46 수정됨

    1. CPU 는

    PC 에 있는 명령어 주소값을 참조 명령어를 IR 에 저장 후 

    명령어를 이해하고

    명령어에 있는 데이터를 

    MAR,MBR 레지스터리를 활용 연산하거나 출력합니다.

    (이해가 안되면 대학교 컴퓨터구조 강의를 들으시는걸 추천합니다.)


    하나의 명령어를 로드하고 연산하고 

    다음 명령어를 로드하고 연산하는 과정을

    클럭이라는 주기로 빠르게 반복합니다.

    (데이터를 반출하기 위해 오퍼랜드 해석이라는 과정이 들어가기도 합니다.)


    문의하신대로 한번에 다 읽고 연산하지 않습니다.


    양자컴퓨터가 아닌 이상

    CPU 의 근본 원리는 바뀌지 않기 때문에

    성능향상을 위해 멀티코어, 파이프라인, 캐쉬등의 기술로 

    반복적인 CPU 동작의 성능을 향상시키는 노력을 합니다.



    2. 명령어는 

    오피코드와 오퍼랜드로 구성됩니다.

    오피코드는 연산의 종류

    오퍼랜드는 연산의 대상인 데이터나

    주기억 장치에 있는 주소를 가지고 있는데 


    명령어의 크기에 따라 주기억장치의 범위가 결정됩니다.

    쉽게 이야기 해서

    32bit 는 32bit 범위의 주소

    64bit 는 64bit 범위의 주소를 사용할 수 있습니다.


    명령어의 크기에 따라 eip또는 pc 레지스터 크기가 일치 되겠죠?


    0
  • 준티
    757
    2019-05-16 11:10:16

    죄송합니다 수정했습니다

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