본문 바로가기
IT & 코딩

CPU 아키텍처 & 메모리 관련 메모

by 에일라거 2016. 6. 22.

1. CPU의 연산 과정은 불러오고 (Fetch), 해석해서 (Decode), 실행하는 (Execute) 순서로 되어 있음


2. CPU는 내부 저장장치(Register), ALU(Arithmetic Logical Unit), Control Unit으로 되어 있음.

  2.1 ALU에서는 두 개의 입력을 받아 여러가지 연산 (Logical, Arithmetical) 을 수행한 후 결과물을 내보냄

  2.2 ALU가 연산을 하기 위해서는 입력을 받아야 하는데 이것을 Register에서 불러들여서 연산 후에 다시 Register로 보냄

  2.3 CPU 안에는 ALU가 많이 들어있어서 이 연산 순서나 데이터의 움직임을 제어해 줄 녀석이 필요하므로, Control unit이 이를 담당.
       (https://en.wikipedia.org/wiki/Control_unit)


3. CPU가 연산을 하기 위한 입출력 등을 저장하기 위한 메모리가 필요한데, RAM은 CPU에 비해 너무 느려서 이보다 빠른 메모리가 필요

  3.1 Cache가 이를 담당하며 L1, L2, L3 cache가 있고, L1이 가장 빠름.

  3.2 L1이 가장 빠른 이유는... 물리적인 이유인 거 같은데 정확히 이해가 안된다. 아래 설명 및 링크 일단 참조...


Q: Why L1 cache is faster than L2 cache?


A: 

They're not the same type of RAM, even though they're on the same chip that uses the same manufacturing process.


Of all the caches, the L1 cache needs to have the fastest possible access time (lowest latency), versus how much capacity it needs to have in order to provide an adequate "hit" rate. Therefore, it is built using larger transistors and wider metal tracks, trading off space and power for speed. The higher-level caches need to have higher capacities, but can afford to be slower, so they use smaller transistors that are packed more tightly.

(http://electronics.stackexchange.com/questions/104759/why-is-l1-cache-faster-than-l2-cache)


우측은 메모리 전반에 대한 설명: http://cse1.net/recaps/4-memory.html


  3.3 메모리 속도는 Register가 가장 빠르고, 그다음 Cache, RAM, HDD 등의 순서


4. Cache가 쓰이는 영역에 또 다른 종류로 Scratchpad memory (SPRAM) 이라는 게 있는데, Cache는 평균 구동속도를 높여주기 위한 것이고 (CPU에서 연산하는 속도에 맞추려고 최대한 latency를 줄이려는 목적), Scratchpad memory는 real-time 연산을 확보하려는 목적으로 사용.

(http://www.jwhitham.org/c/smmu.html)

 4.1 두가지 다 SRAM으로 종류는 같으나 Scratchpad에는 SMMU라는 별도의 제어 유닛이 붙는 듯


5. 메모리의 종류는 SRAM (Static RAM), DRAM (Dynamic RAM) 이 있으며 SRAM은 비트 하나를 저장하는데 트랜지스터 6개, DRAM은 트랜지스터 하나와 캐패시터 하나를 사용. SRAM이 훨씬 빠름. (Cache 등에 사용) (https://en.wikipedia.org/wiki/Random-access_memory)

  5.2 SRAM이 빠른 이유는 구동방식의 차이 때문임. DRAM은 캐패시터에 데이터를 저장하기 때문에, 캐패시터 특성 상 전원이 들어와 있다 하더라도 데이터를 계속 저장하기 위해서는 주기적으로 refresh (충전) 해줘야 함. 이 시간이 걸리기 때문에 SRAM보다 태생적으로 느릴 수밖에 없다고...

  5.3 SRAM이 트랜지스터 6개를 이용한다고 했는데, flip-flop (SR Latch) 방식으로 데이터를 저장하는 것임.


6. SRAM/DRAM/Flash memory/EEPROM 의 차이: 링크

댓글