본문 바로가기
시스템 반도체/컴퓨터 구조 (RISC-V)

컴퓨터 구조 Data transfer ( instruction acess, Data acess, read, write, PC register )

by 전컴반 2022. 2. 26.
반응형

왜 cpu는 메인 메모리에 접근해야 하나?

 

1. 명령어의 접근

2. 데이터의 접근

 

Instruction Access (Read) 

 

모든 cpu는 PC (program counter)라는 플립플롭으로 구성된 특별한 레지스터를 가지고 있다. 이 PC레지스터를 이용하여 명령어에 접근한다.

 

컴퓨터를 켜면 PC는 메모리에서 first instruction 주소을 가져온다. 어떤 명령어인지는 모르지만 그 주소에 있는 명령어를 가져온다.

처음 가지고 있던 주소를 address bus로 보내면 그에 맞는 명령어를 cpu로 가져와서 실행시킨다. 하나의 동작이 끝나면 PC는 자동으로 증가하여 명령어들을 실행한다. cpu는 전원이 끝날 때까지 계속 반복한다.

 

RISC-V에선 PC의 초기값이 0으로 돼 있다. 추가적으로 4bit씩 증가한다. 이유는 메모리에 저장돼 있는 명령어가 4bit로 돼 있기 때문이다. 

 

Data Access Read/ Write

 

cpu 레지스터는 한정적이기 때문에 메인 메모리에 값을 저장하여 계속 새로 쓸 수 있어야 한다. 이에 데이터 접근이 필요한 것이다. 

 

Data Transfer

 

데이터의 흐름을 순차적으로 보자

 

 

1. PC에는 0x0000이 들어있다. 0x0000을 adress bus를 통해 보낸다.

 

2. 메모리에선 0x0000에 해당하는 lw x2 4(x5)를 data bus를 통해 보낸다. 

- lw x2 4(x5)란, x5에 4를 더한 주소의 값을 x2에 저장하란 뜻이다. (이때 x5를 0x0000_0010으로 가정하자.) 

 

3. 이에 4(x5)의 결괏값인 0x0014를 adress bus를 통해 보낸다. (이때 x5와 4의 덧셈은 ALU가 한다.)

 

4. 그러면 0x0014에 해당하는 값을 x2에 bata bus를 통해 보내어 x2에 저장한다. (0x0014 == 0x1111_1110)

 

5. 다시 PC는 4를 증가하여 0x0004가 되어 위의 과정을 반복한다. 

반응형

댓글