티스토리 뷰

#0. 하드웨어 사양 관련 용어

1. 클럭(Clock)

- 클럭은 CPU의 속도와 관련된 단위이다. CPU는 일정한 박자에 맞춰 작업을 수행하는데, 이 박자를 만들어내는 것이 클록이다. 클럭이 일정 간격으로 틱을 만들면 그 틱에 맞춰 CPU 내의 구성 부품이 작업을 수행한다. 

- 동일한 시스템에서 각 구성요소의 모든 동작을 동기화 하기 위해 사용하는 것.

- 일반적으로 클럭 속도가 빠를수록 CPU의 성능도 빨라진다. 임의로 클록의 속도를 끌어올리는게 오버클럭. 하지만 발열 문제 역시 따라오게 된다.

- 클럭은 CPU 뿐만 아니라 메인보드에도 달려있다. 메인보드가 만들어내는 클럭에 따라 버스에 연결된 부품(램)과 데이터를 주고받는다.

- 클럭은 부품마다 다르다. 메인보드에서 베이스 클럭을 보내주면, 클럭을 n배수 시켜서 각자 입맛에 맞게 조절하여 사용한다.

 

2. 클럭의 단위는 Hz.

- CPU의 클럭은 베이스 클럭와 부스터 클럭으로 구분할 수 있다

- 베이스 클럭은 기본 주파수(모든 CPU 코어에 작업이 걸린 상태에서의 최저 주파수)

- 부스터 클럭은 CPU가 낼 수 있는 최대 출력

작업관리자에서 볼 수 있는 CPU의 @클럭은 베이스 클럭 기반이었다

(뻘 내용이 너무 길어졌다)

 

3. 버스

시스템 버스는 메모리와 주변장치를 연결하는 버스로, FSB(Front Side Bus)라고 한다.

 

CPU 내부 버스는 CPU 내부에 있는 장치를 연결하는 버스로, BSB(Back Side Bus)라고 한다.

- CPU 내부 클럭에 동기화되어 매우 빠르다

 

* CPU 내부 버스의 클럭 속도와 시스템 버스의 클럭 속도 차이는 매우매우 크다. 따라서 이를 완충하기 위한 장치들을 많이 갖춰놓았다. CPU 내의 캐시 - DRAM - 보조 저장장치로 이어지는 계층형 구조 역시 이런 속도차를 완충하기 위해 만들어졌다.

 

 

#1. CPU의 구성

CPU는 크게 산술논리 연산장치, 제어장치, 레지스터로 구성된다.

 

1. 산술논리 연산장치(Arithmetic and Logic Unit, ALU)

- CPU에서 데이터를 연산하는 장치. 산술 연산과 논리 연산을 수행한다.

 

2. 제어장치(Control Unit)

- CPU에서 작업을 지시하는 부분.

 

3. 레지스터(Register)

- CPU 내에 데이터를 임시로 보관하는 곳.

<레지스터의 종류>

 

1. 데이터 레지스터(DR) - 메모리에서 가져온 데이터를 임시로 보관하는 공간. 대부분의 레지스터가 데이터 레지스터이므로 범용 레지스터라고 부른다. 

2. 주소 레지스터(AR) - 데이터 또는 명령어가 저장된 메모리의 주소를 저장하는 공간

3. 프로그램 카운터(PC) - 다음에 실행할 명령어의 주소를 기억하고 있다가 제어장치에 알려주는 역할 

4. 명령어 레지스터(IR) - 현재 실행중인 명령어를 저장. 제어장치는 IR에 있는 명령을 해석한 이후 외부장치에 적절한 제어신호를 보낸다.

5. 메모리 주소 레지스터(MAR) - 메모리에서 데이터를 가져오거나 보낼 때 주소를 지정하기 위해 사용. 필요한 메모리 주소를 이 레지스터에 넣으면 메모리 관리자가 이를 보고 해당 메모리 주소에 데이터를 가져오거나 쓴다.

6. 메모리 버퍼 레지스터(MBR) - 메모리에서 가져온 데이터나 옮겨갈 데이터를 임시로 저장한다. MAR과 항상 붙어다닌다.

7. 이외에도 플래그 레지스터, 상태 레지스터, 프로그램 상태 레지스터 등 무수히 많은 레지스터들이 존재한다.

 

<흐름>

LOAD mem(100), register 2;

 

1. PC에 저장된 주소를 제어장치에 전송. 

2. IR에 LOAD 명령어 탑재

3. 제어장치가 IR의 LOAD 명령어를 보고 메모리에 저장된 데이터를 불러오라고 명령

4. MAR에 주소 100 저장

5. 메모리 관리자가 이를 보고 메모리에서 데이터를 가져와 MBR에 저장한다.

6. 제어장치가 MBR에 저장된 값을 레지스터로 옮긴다.

 

 

* 경계 레지스터와 한계 레지스터(Bound Register & Limit Register)

- CPU는 현재 진행중인 작업의 메모리 시작 주소를 경계 레지스터에 저장한다.

- 또한, 현재 진행중인 작업이 차지하고 있는 메모리의 크기, 마지막 주소까지의 차이를 한계 레지스터에 저장한다.

- 사용자의 작업이 진행되는 동안, 이 두 레지스터의 주소 범위를 넘어가는지 계속 점검함으로써 다른 공간으로 침범하지 않도록 보호한다. 

 

#2. 버스의 종류

버스는 CPU와 메모리, 주변장치 간에 데이터를 주고받을 때 사용한다.

제어 버스 / 주소 버스 / 데이터 버스로 구분되어진다.

(참고로 모두 시스템 버스이다)

 

1. 제어 버스

- 다음에 어떤 작업을 할 지 지시하는 제어 신호를 주고받는다

- CPU의 제어장치와 연결되어 있으며, 양방향이다.

 

2. 주소 버스

- 메모리의 데이터를 읽고 쓸 때 어느 위치에서 작업할 것인지 알려주는 주소 정보를 주고받는다

- MAR과 연결되어 있으며, 단방향이다

- (나가는 것만 있고 들어오는 것은 없다. -- 주소버스를 통해 CPU에게 주소를 알려줄 필요가 없다)

 

3. 데이터 버스

- 말 그대로 데이터가 이동하는 버스.

- MBR과 연결되어 있으며, 양방향이다.

 

* 버스의 대역폭(Bandwidth)는, 한번에 전달할 수 있는 데이터의 최대 크기를 뜻한다.

64bit CPU는 메모리에서 데이터를 한번에 64bit 씩 주고받을 수 있어야 하며, 즉 버스의 대역폭 또한 64bit으로 구성되어 있다는 의미이다. ㅎㄷㄷ

 

 

#3. 메모리의 종류

모든 프로그램은 메모리에 올라와야 실행될 수 있으며, 메모리에서 데이터를 읽거나 쓸 때에는 워드 단위로 이뤄진다.

 

<램, Random Access Memory>

RAM의 의미: 찾는 주소에 관계없이 액세스 타임이 일정한 메모리.

 

[휘발성 메모리]

1. DRAM: 메인 메모리 

2. SRAM: 캐시 메모리. 비싸다

 

[비휘발성 메모리, NVRAM]

- 플래시 메모리. USB, SSD 등이 비휘발성 메모리에 속한다.

- 1소자당 1비트의 간단한 구성. 

- NAND 타입과 NOR 타입으로 구분할 수 있다.

 

 

<롬, Read Only Memory>

롬은 전력이 끊겨도 데이터를 보관할 수 있으나, 데이터를 한번 저장하면 바꿀 수 없다.

 

Mask ROM - 데이터를 한번 쓰면 지우거나 쓸 수 없다. 가전제품에 보통 마스크 롬이 탑재된다.

PROM - 전용 기계를 이용해 한번 쓸 수 있다. 퓨즈를 끊는 식으로 기록해서 한번 기록하면 더이상 수정할 수 없다.

EPROM - 데이터를 여러번 쓰고 지울 수 있다. 자외선을 이용한다고 함

EEPROM - 전기적인 신호를 이용하여 데이터를 여러번 쓰고 지울 수 있다. 플래시 메모리와 유사하다.

 

 

 

<< 부록 >>

# NAND 타입 플래시와 NOR 타입 플래시

[NAND 타입]

- 몇 개의 블록 단위로 읽고 쓸 수 있음.

- 대용량이 요구되는 메모리 카드, USB 드라이브 등

 

[NOR 타입]

- 메모리 워드 단위로 읽고 쓸 수 있음

- 과거 EPROM을 대체하여 사용

 

대표적인 반도체 기업 삼성전자, SK 하이닉스 등은 모두 NAND 플래시 부문에서 잘나간다.

NOR 타입은 NAND 타입에 밀려 사양되는 추세이니.. 줄을 잘 탔다고 할 수 있겠다 ㅋㅋ

 

# SRAM과 DRAM

반도체 수업시간은 아니니 간략하게만 보고 넘어가자

 

1. SRAM(Static RAM)

SRAM

- SRAM은 6개의 트랜지스터로 1비트를 저장한다. 

- 전원만 공급받으면 리프레시를 해줄 필요가 없으며, 액세스 타임이 매우 빠르다.

- 빠른 속도를 요구하는 캐시 메모리에 주로 사용된다.

 

2. DRAM(Dynamic RAM)

DRAM

- 커패시터의 충전과 방전을 이용하는 방식으로, 트랜지스터 1개와 커패시터 1개로 1 비트를 저장한다.

- 딱 봐도 SRAM보다 구조가 단순하니 저렴해 보이는 방식이다.

- 구조가 단순하여 대용량 설계에 적합하나, 커패시터의 특성 상 오래 방치하면 방전이 되어버린다.

- 따라서, 셀 안의 저장상태가 유지될 수 있도록 주기적으로 리프레시(재충전)을 해줄 필요가 있다.

- 삼성전자랑 하이닉스가 특히 DRAM 분야를 꽉 잡고있다. 국뽕이 차오를지도

 

 

* 메모리의 저장 구조는 행(RAS)과 열(CAS)의 격자구조로 구성되어있다.

* 메모리 뱅크: 기억장치를 분할해 독립적으로 액세스 할 수 있도록 구성한 논리적인 단위

* 메모리 칩 내부의 저장위치 구조 = (뱅크 수) x (행 수) x (열 수)

* DRAM 리프레시는 같은 행의 셀을 한꺼번에 재충전하는 방식을 사용한다.

-> 특정 셀의 내용을 한번 읽으면, 같은 행의 셀을 전부 재충전하고, 특정 셀의 내용을 한번 써도 같은 행의 셀을 전부 재충전한다. SRAM에 비해 속도가 낮을수밖에 없다.

 

 

# DDR SDRAM

SDRAM(Synchronous DRAM): 메모리 버스 클럭에 동기화되는 DRAM.

DDR SDRAM(Double Data Rate SDRAM): 같은 메모리 클럭 속도에서 SDRAM에 비해 2배의 데이터 전송률을 갖는 DRAM.

- 클럭 펄스의 상승/하강 시점에서 2번의 데이터 전송

- 클럭의 속도는 똑같은데 버스 사이클당 전송 횟수를 늘려서 대역폭을 증가시키는 방법.

- DDR3은 일반 DRAM에 비해 8배의 데이터 전송률을 갖는다. 어마무시하다.

- 아니 이게 어떻게 가능해요? -> 버퍼에 데이터를 쌓아둬서 더 많이 보내는 방식을 사용 (Prefetch, 선인출)

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함