[한권으로 읽는 컴퓨터 구조와 프로그래밍] 4장 내용 정리-1

2024. 1. 16. 21:53컴퓨터

*이 글은 [한권으로 읽는 컴퓨터 구조와 프로그래밍] 책을 읽고 내가 기억하기 쉽게 정리한 내용이다.

 

*개발자로 일을 하다보니 컴퓨터가 어떻게 데이터를 읽는지, cpu는 뭐고 메모리는 무엇인지 등등 알고 넘어가면 코딩을 짤 때 더 수월하겠다는 생각에 읽게되었다.

 

*cpu와 메모리가 무엇인지 제일 먼저 궁금했기때문에 앞부분을 건너뛰고 4장부터 읽게 되었다.

 

 

4장 컴퓨터 내부 구조

-컴퓨터 하드웨어는 어떻게 구성되는가

 

*현대적 컴퓨터는 크게 메모리(기억장치), 입력과 출력(I/O), CPU(중앙 처리 장치)라는 세 가지 부분으로 나눌 수 있다.

 

*메모리

-컴퓨터에서 조작하는 비트들을 저장하는 장소

-메모리는 집이 빈틈없이 늘어선 거리와 같다. 각 집마다 1바이트를 저장한다. 각 집에는 주소(숫자)가 부여된다.

-컴퓨터 메모리 크기가 64MiB라면, 64*1024*1024=67,108,864 바이트, 0~67,108,864까지의 주소가 존재한다.

-32비트 컴퓨터는 보통 메모리를 4바이트 덩어리로, 64비트 컴퓨터는 메모리를 8바이트 덩어리로 구성한다. 덩어리의 바이트가 크면 클수록 더 많은 양의 데이터를 처리할 수 있다.

-각 메모리는 가성비가 다르다. 

 ex) SRAM은 빠르고 비싸다. 디스크는 저렴하지만 느리다.

-CPU로 갖고오는 데이터덩어리의 정렬은 어떠할까? => 리틀 엔디안인지 빅 엔디안인지에 따라 다르다. 리틀 엔디안은 오른쪽부터 채우고 빅 엔디안은 왼쪽부터 채운다.

 

 

*입력과 출력

-컴퓨터에 정보를 전달하거나 컴퓨터에서 정보를 가져오는 방법을 입력/출력이라고 한다. 여기에 연결되는 장치를 I/O장치 라고 한다. = 주변장치/퍼리퍼럴

-옛날에는 메모리 처리와 I/O처리를 따로했다. => 메모리가 크지 않았기 때문에

-요즘은 메모리가 커져서 메모리에 빈 주소가 많아졌다. = 아무 메모리도 연관되지 않은 주소가 많아졌다.

=> 메모리 거리 중 일부를 I/O 장치에 할당한다.

 

 

*중앙 처리 장치 = CPU

-실제 계산을 처리

-CPU는 중심이고 다른 모든 요소는 CPU를 지원하는 역할을 한다.

 

-산술 논리 장치 ALU

ㄴ CPU의 핵심 부품

ㄴ 산술 계산 등 연산을 수행하는 방법을 알고 있다.

ㄴ ALU에 피연산자 A/B가 들어가면 연산 코드를 통해서 결과와 조건 코드가 나온다.

ㄴㄴ 피연산자 : 수를 표현하는 비트

ㄴㄴ 연산 코드 = 명령코드 : ALU가 어떤 연산자를 적용할지 지정함

ㄴㄴ 조건 코드 : 결과에 대한 추가 정보

ㄴㄴㄴ조건 코드 레지스터라는 레지스터에 조건 코드가 저장됨. 레지스터는 메모리 거리가 아닌 다른 곳에 존재하는 메모리이다.

ㄴㄴㄴN비트 : 마지막으로 수행한 연산 결과가 음수인 경우 1

ㄴㄴㄴZ비트 : 마지막 연산 결과가 0인 경우 1

ㄴㄴㄴO비트 : 마지막 연산에서 오버플로 / 언더플로가 생긴 경우 1 (MSB/ LSB를 말하는 듯.)

ㄴ셀렉터와 논리 게이트를 연결한 것일 뿐이다.