티스토리 뷰

컴퓨터 배경 스토리

옛날에는 유선으로 된 회로로 전신기를 사용하였다. 길이가 길어질수록(거리가 길어질수록) 저항이 커져 전압이 약해졌다. 이걸 개선하기 위해 릴레이를 설치한다. 이것은 원래 전기 증폭의 목적으로 만들었다. 하지만 똑똑한 사람들이 릴레이를 진공관, 레지스터 등으로 발전시켰다. 이미테이션게임(영화)에서 베네딕트가 엄청 큰 컴퓨터에 전선을 여기저기 꽂아가며 조작하는게 나오는데 이게 옛날 진공관으로 만든 컴퓨터라고 한다.

 

AND, OR, NOT(Invertor)를 사용하여 NAND, NOR, XOR등의 논리회로를 만들 수 있다. 이것들을 적당히 활용하면 연산을 수행할 수 있는 장치를 만들 수 있다. 미션에서 만든 바이트계산기도 논리회로를 적용한 반가산기, 전가산기로 만들어진다. (반가산기 2개를 활용하면 전가산기 연산이 된다)

 

바이트 계산을 하는데 음수 값은 보수 값을 사용한다. 8비트 연산의 경우 2의 보수를 만드는 경우로 예를 들어보겠다.

// 2의 보수를 만들 경우 반대로 뒤집은 수 +1 을 한다

//음수가 아닌 정수 (128만큼 세는데 0부터 시작해서 MAX : 127)
00000000 // 0 
01111111 // 127

//음수 (-1 부터 시작하니까 MAX : -128)
10000000 // -128
11111111 // -1

이렇게 바이트의 덧셈을 활용하기 위해서 보수 값을 사용한다. 0000 0001 (양수 1)의 2의 보수는 1111 1110 으로 뒤집은 수에 +1 을 해준 1111 1111 (음수 1) 이다. 이런식으로 덧셈연산으로 뺄셈연산을 한다.

사칙연산, &&, ||, !, << 등의 연산으로 ALU 라는 산술연산장치를 만들 수 있으며 CPU에서 연산을 하는 장치이다.

컴퓨터 구조

 

컴퓨터 구조

작성한 코드는 디스크에 존재한다. 컴파일을 통해 기계어 코드로 변경되고 프로세스가 실행될 때, 메모리 코드 영역에 기계어 코드가 올라간다. 연산은 CPU에서만 진행되는데 메모리에 있는 작성된 기계어를 하나하나 CPU로 불러온다. 이 과정을 IF(Instruction Fetch)라고 한다. ALU가 연산을 해서 다시 그 결과 값을 메모리에 데이터 영역에 저장한다.옛날에는 메모리가 코드용 메모리, 데이터 메모리로 나뉘어져 있었다. 지금의 메모리에서 코드영역, 데이터 영역을 의미한다. 데이터 영역의 주소에 데이터가 저장된다.

코드를 연산 후 저장

 

정리

결국 연산 및 계산을 하는 건 CPU이다. 바이트 계산기가 발전해서 ALU가 만들어졌고, ALU의 조합으로 레지스터와 CPU가 만들어졌다. 그러면서 그 연산 작업을 도와주기 위한 메모리, 디스크, IO 장치 등등이 연결되어 오늘날의 컴퓨터의 모습이 되었다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함