학부 내용 정리/[ 2-1 ] 자료구조

[ 자료구조 ] 기본사항 : 메모리와 컴퓨터 동작방식

haena02 2022. 6. 13. 15:58
반응형

자료구조를 공부하기 전에 컴퓨터의 기본적인 구조와 컴퓨터가 어떤 방법으로 실행되는지부터 보겠다.

메모리 안에는 무수한 바아트, 비트들이 있다.

 

- 비트 : 0과 1을 표시할 수 있는 전자회로적인 도구

- 바이트 : 8개의 비트

 

이러한 메모리는 어떤 방식으로 저장하고 동작할까?

 

이를 알아보기 위해 간단한 코드와 이가 동작하는 방법을 설명해보겠다.

int main()
{
    int a,b,c;
    c= a+b;
}

//a:300 b:600 C:900 주소에 저장된다고 가정

 

int a,b,c 가 실행 되면 a,b,c는 memory 어딘가에 저장이 될 것이다. 메모리에는 0번부터 차례대로 번호가 매겨져 있으며 int a,b,c는 빈 자리에 가서 각 4바이트의 연속된 데이터를 차지하고 있을 것이다. 

 

다음으로 c=a+b 가 실행되기 위해서는 먼저 메모리에 저장된 a와 b를 꺼내 CPU 레지스터로 복사될 것이다.  이 때 주소는 IP에 적혀있어 알 수 있다. ALU가 이들을 더해 다시 레지스터에 넣을 것이다. 이를 다시 메모리에 저장하면 수행은 끝난다. 

 

조금 더 구체적으로 보다면 CPU와 memory는 여러개의 BUS(전선)이라는 것에 연결되어 있다.

BUS는 둘 사이를 연결하는 역할을 한다. 전압을 통해서 서로 주고받을 수 있다.

 

먼저 a에서 값을 읽어 와야 한다. IP에서 300이라는 주소를 받아 address 버스에 300이라는 숫자를 CPU가 올린다. 그래서 메모리에서 기억을 하게 된다. 메모리는 300번지에 무슨 일이 일어날 것인지 알게 된다.그리고 컨트롤 버스에서 CPU가 4바이트를 읽어라 라는 신호를 전압으로 띄운다. 메모리가 그걸 전달 받고 값을 읽게들이게 된다.

 

그 다음 메모리에서 값을 읽어서 data 버스에서 읽을 값을 CPU에 쪽으로 전압을 걸어 전달한다. 그것을 레지스터(임시 메모리)에 적재하게 된다.이와 같이 b도 같은 과정으로 읽히게 되고 CPU에 전달하게 된다.

 

그리고 나서 레지스터에서 두 개의 내용을 CPU에서 더하게 되는데 , 두개의 내용이 ALU에 전달되고 ALU 출력 쪽에 두 개를 더한 값에 대한 전압이 발생해서 다시 다른 레지스터에 저장한다.

 

자 이제 c에 더한 값을 적어줘야 한다. c의 주소가 뜨고 그곳에 값을 적고 싶다는 신호를 컨트롤 버스에 전달해서 c의 값이 정해진다.

 

 

반응형