'[HARDWARE]/CORE'에 해당되는 글 11건

  1. 2009.09.25 DDR SDRAM의 동작 구조
  2. 2009.09.25 CISC vs RISC
2009. 9. 25. 23:46

8051계열을 가지고 놀다가 x86 system을 처음으로 접하면서 겪은 가장 큰 어려움은 RAM에 대한
이해였다
.
8051
계열에선 RAM이라 하면 SRAM을 지칭하는 것이었고 사용에 있어서 스피드외엔 크게 주의를요하지
않았다
.

하지만 x86계열에선 거의 DRAM을 사용하고 있었고 사상누각뿐인 내 머리에서 붕괴가 일어나기
시작했다
.
서론은 여기까지 하고 x86 system을 가지고 놀기위해 가장 기본적으로 DRAM을 살펴본다.

1. SRAM
DRAM의 차이
2. DRAM
의 특징
3. DRAM
의 기타 주요사항
이와같이 접근하기로 한다.

1. SRAM
DRAM의 차이
-SRAM :
정적램
-DRAM :
동적램

-SRAM :
플립플롭으로 구성 (데이터 보관용이)
-DRAM :
콘덴서로 구성 (데이터를 유지하기위해 주기적인 refresh가 필요)

-SRAM :
빠른속도, 비싼가격, 캐쉬 메모리로 주로 사용됨
-DRAM :
높은 메모리 집적도, 싼 가격, 낮은 전력소모

2. DRAM
의 특징
삼성전자에서 나오는 K4H511638C-UC/LB0을 살펴보기로 한다.
K4H511638C-UC/LB0
32Mx16으로 이루어진 DDR266, 512Mbit DRAM이다.

어드레스핀의 갯수는 해당 RAM의 용량을 결정하지만 용량을 크게하기 위해서 무턱대고 핀의 수를
늘리면 고집적도와 소형화를 할 수 없다
.
그래서 DRAM에서 선택한 방법이 행렬의 배열이다.
한 핀으로 row column의 역할을 동시에 하는 것이다.
물론
 CPU AM A0핀을 access 할 때 row로 쓰인것인지 column으로 쓰인것인지 알려줘야만 한다.

(row)과 행(column)으로 이루어진 방들의 구조를 생각해 보면 쉽게 접근할 수 있다.
K4H511638C-UC/LB0
Row(A0~A12), Column(A0~A9)로 이루어져 있다.


위의 방들이 모두 Low 이면 0x 000 0000 0000 0000 0000 0000 이고
위의 방들이 모두 High 이면 0x FFF FFFF FFFF FFFF FFFF FFFF 이 되는 것이다.

나올 수 있는 모든 경우의 수는 2^(13+10)이며 위의 방과 똑같은 구조가 3개나 더 있는 것이다
.
(4Banks
라고 Datasheet에 나와있지 않은가
...)

종합해 보면 아래와 같이 간단히 나타낼 수 있다
.
2^(13+10) = 8M, 4Banks, 16bit data
로 의해서 512Mbit의 용량이 되는 것이다
.

여기까지 용량과 간단한 구조를 확인 했으니 이번엔 전체 흐름을 느껴보자
.

Row
쪽 어드레스인지 Column쪽 어드레스인지를 식별 해 주는 시그널이 strobe이다
.

[CPU
DRAM에서 데이터를 가져오는 순서]
Row address를 날린다.
RAS (Row address strobe)로 확인 시켜준다
.
Column address를 날린다
.
CAS (Column address strobe)로 확인 시켜준다
.
DRAM에서 데이터가 꿈틀 꿈틀 나온다
.

이처럼 DRAM을 억세스 하려면 열과 행 어드레스가 인가되는데 이를 위해 DRAM 외부에는 멀티플렉스
회로가 필요하고 내부에는 디멀티플렉스 회로가 필요하다
.
그 외에 DRAM의 사용에는 RAS, CAS, Refresh같은 복잡한 회로가 필요하여 대용량의 RAM이 필요하지
않는
8051계열엔 SRAM이 사용되는 것이다
.

3. DRAM
의 기타 주요사항
이번엔 몇가지 전문 H/W적인것을 살펴본다. 일반인 이라면 위의 글까지 만으로 충분하지만 본인이 H/W
엔지니어라면 아래의것들이 더 중요하다고 느낄때가 있을 것 이다
.
① 메모리 억세스 시간

② 인터리빙
 Burst

① 메모리 억세스 시간

메모리 억세스 시간의 분류는 여러가지가 있겠지만 많이 쓰이고 중요한 몇 가지를 살펴본다.
tAA (address access time)
어드레스가 어드레스핀에 인가되는 순간부터 데이터핀에서 데이터를 이용 할 수 있게되는 시간까지의
간격

tCZ (access time from CS)
메모리의 CS핀이 활성화 되는 시간부터 데이터가 이용 가능해지는 시간까지
CL (CAS Latancy)
CAS
후에 몇 클록이 지나면 데이터핀에 데이터가 나타나는가
K4H511638C-UC/LB0 2.5라고 되어있다. (DDR266 @ CL=2.5)

②인터리빙

SRAM
DRAM에서 메모리를 억세스하고 데이터를 받기 까지의 시간을 비교 해 보자.

-SRAM :
억세스시간(A) + 데이터 출력시간
(B)
-DRAM :
억세스시간(A) + 데이터 출력시간
(B) + refresh(C)
위의 예는 1회 억세스 했을 떄의 기준이고 만일 100회가 이루어 진다면 100C의 시간만큼 차이가 날
것이다
.

이러한
DRAM의 충전시간 문제를 극복하는 방법 중 하나가 인터리빙이다
.

1뱅크와 제2뱅크가 있다고 하고 서로 나란히 위치 시킨다. CPU 1뱅크를 억세스 한 뒤 refresh하는
동시에
2뱅크를 억세스 하여 다음 데이터를 받는다
.

어떤가... 충전시간이 다른 뱅크의 억세스 시간에 가려지게 되었다
.
이것이 인터리빙 인터페이싱이다. 개인적으로 이 부분에서 감동의 충격을 받았다
.

Burst
데이타 시트를 볼 때마다 burst mode지원이라던가 burst length라는 단어를 많이 봤었다.
Burst
'폭발'이란 뜻으로 아는데 확실하진 않다. 대체 이게 무엇인가
...

일반적으로 데이터를 읽기는 어드레스와 RAS, CAS가 따른다. 그런데 보통 연속된 어드레스를 억세스
하므로
CPU입장에선 계속 어드레스를 날리는 것이 여간 귀찮지 않을까
.

그래서 예를 들어 버스트 길이를 8로 약속(프로그램)하면 첫번째 위치에대해 RAS의 전체 주소가 필요하고 CAS가 뒤따르지만 두번째, 세번째, ... 여덟번째에 대해서는 무상(?)으로 데이터를 얻을 수 있는
것이다
.

시간도 절약되고
CPU의 부하도 덜고
...
이는 CPU DRAM이 동기된 클럭으로 움직이니까 가능하다
.

버스트 읽기의 수는 1, 2, 4, 8, 16 또는 256 이 될 수있고 전체 페이지 크기까지 커질 수 있다고 하며
버스트
SDRAM은 미리읽는 수를 프로그램 할 수 있다고 한다
.

이것으로 DRAM을 대충 훓어 보았다
.
기회가 된다면 Layout에 관해서도 논할 예정이다
.

[
참고
]
The 80x86 IBM PC and Compatible Computers (Volume II)

-Muhammad Ali Mazidi, Janice Gillispie Mazidi-
 

'[HARDWARE] > CORE' 카테고리의 다른 글

DDR2 SDRAM의 동작원리 - ODT  (15) 2009.10.09
DDR2 SDRAM의 동작원리 - 4bit PREFETCH  (0) 2009.10.09
DDR2 SDRAM Layout Guide  (1) 2009.09.29
CISC vs RISC  (0) 2009.09.25
Posted by nooriry
2009. 9. 25. 19:24

CPU의 종류를 나열하거나 분류하거나 하는 기준들은 매우 다양하지만 CISC RISC CPU
분류하기도 한다
.
아직 이런 분류에 대해 알고있지 않다면... 아직 늦지 않았다.

CISC vs RISC
CISC (Complex Instruction Set Computer)
RISC (Reduced Instruction Set Computer)

영문 약자를 풀어서 쓰고 천천히 살펴보면 대충 감이 오는것 같기도 하다.
CISC -
모든 가능한 경우를 고려해서 수백개의 명령어를 가지고 있다.
RISC -
자주 사용하는 명령어 약 40개 정도만 사용하여 절약된 트랜지스터들로 성능을 향상 시킨다.
Intel
x86등은 CISC이다. 처음부터 CISC였고 그것을 기반으로 진화해 왔으므로 여전히 CISC이고...

CISC
의 장점은 무엇인가?
펜티엄 CPU에 사용하는 OS는 무수히 여러가지이며 그 OS위에 깔려지는 여러가지
어플리케이션 또한 그 수를 셀 수 없이 다양하다
.
이러한 다양한 OS, Application등을 모두 수용하기 위해서 많은 명령어가 필요했으며
여전히
Intel CISC방식을 따르고 있고 사용자는 무궁한 software를 깔 수 있다.

RISC
는 모든 명령어의 크기가 4바이트이다. 명령어 크기가 고정되어
있어서 CPU
빠른 명령어 해석이 가능하다
.
RISC
레지스터를 많이 가지고 있다. 굳이 스택이 필수적이지 않을 정도이다.
한정된 수의 명령어는 프로그램 크기를 크게 만들지만 DRAM가격이 싸기 때문에 문제가 되지 않는다.
가장 큰 특징은 95%이상의 명령어들이 단지 1클록에 실행 된다는 것이다.

이런 절약에 기반하여 남는 트랜지스터들로 캐쉬와 개쉬 제어기, 그래픽 프로세서등을 구현하는 것이다.
그래서 한 개의 CPU안에 여러가지 코어를 넣어서 원칩화가 수월한 것이다.
그리고 하바드 아키텍쳐라는 것이다. (하바드 아키텍쳐에 대해선 추후에 논의 할 수 있을 것이다.)

RISC
방식의 CPU로는 Power PC DSP가 있고 작지만 강력한 일부 마이컴들이 있다.

'[HARDWARE] > CORE' 카테고리의 다른 글

DDR2 SDRAM의 동작원리 - ODT  (15) 2009.10.09
DDR2 SDRAM의 동작원리 - 4bit PREFETCH  (0) 2009.10.09
DDR2 SDRAM Layout Guide  (1) 2009.09.29
DDR SDRAM의 동작 구조  (0) 2009.09.25
Posted by nooriry