프로그래밍[Univ]/아키텍처

[Architecture] Memory part 1

Cloud Travel 2013. 3. 30. 16:03
* 싱글 보드 컴퓨터

 - 컴퓨터의 3대 요소, CPU, Memory, I/O 포트를 하나의 보드에 구현한 기본적인 기능만을 갖고 있는 컴퓨터

 

* 메모리 Basic

 - CPU가 수행할 프로그램과 데이터가 저장된다.

 - 메모리를 다루는 주체는 CPU이며, CPU는 메모리에 Read와 Write연산을 한다.

 - "주/보조", "휘발성/비휘발성", "Static/Dynamic", "RAM/ROM" 등으로 다양하게 구분된다.

 - RAM의 특성을 갖춘 ROM인 EPROM, EEPROM, Flash등도 존재한다.

 - CPU가 메모리의 특정 위치를 가르키기 위해서 메모리 맵, 어드레스 디코딩등이 가능해야 한다.


* 용어

 - 메모리 셀 : 1bit 정보를 저장하는 저장 단위

 - 워드 : 메모리에 한번에 저장하거나 인출할 수 있는 정보단위

  > CPU가 주체 : CPU마다 다르며, 클수록 한번에 많은 Data를 처리해여 Memory 참조 대기시간을 줄일 수 있다. > 속도향상

  > 컴퓨터를 이루는 다른 요소에 의해 무한정으로 크기를 향상 시킬 수 없다.

 - 메모리 용량 : 메모리 시스템에 저장이 가능한 총 bit 수

 - 메모리 주소 : 메모리의 특정 위치

 - 접근 시간 : 한번의 Read 연산을 수행하는데 걸리는 시간


* ROM(Read only memory)

 - ROM은 바꾸지 않을 데이터를 계속해서 저장할 경우 사용하는 메모리이다.

 - 딱 한번 프로그램이 가능한 ROM을 PROM / 저장했던 데이터를 지우고 다시 프로그래밍 하는 램을 EPROM

 - EPROM, EEPROM의 장점을 모으고, 고속으로 접근이 가능하게한 Flash메모리가 있다.

 - ROM 제조 방법에 따라 접근 시간은 모두다 다르게 된다.

 - ROM의 일반 구조는 다음과 같다.

 - CS(Chip Selector)가 사용가능한 상태(Low 상태)일 경우에만 데이터가 Output buffer로 이동하게 된다.


 ※ 여기서 2개의 decoder를 이용하여 2차원으로 레지스터를 정렬하는 기법은 이후에 나오는 RAM에도 사용되는 기법이다.


* RAM(Random access memory)

 - 프로그램과 데이터와 같이 자주 바뀌는 데이터를 저장할 때 사용된다.

 - RAM은 Read와 Write연산이 모두 가능하다.

 ⓐ Static RAM

  - 전원이 공급되고 있으면 지속적으로 데이터를 유지

  - 제조 기술에 따라 Access time이 다르게 적용된다.(속도가 빠를 수록 가격이 높아진다.)

 ⓑ Dynamic RAM

  - 일정 기간만 유지

  - 데이터를 일정 주기로 리프레싱해서 데이터를 유지한다.

  - 소비전력이 적고 저장용량이 크다.


* RAM Cycle

 - CPU와 Memory는 read, write, execute등의 cycle을 지속적으로 수행한다.

 - Access time이 빠를수록 좋다.(수행시간이 짧아진다)

 - CPU가 빠르면(Clock이 높으면), cycle이 짧아진다. 하지만 메모리의 특성에 따라 cycle의 한계가 있다. 

 ⓐ Read Cycle

  1) CPU의 데이터 요청(CPU는 버스를 통해 데이터가 있는 주소를 전달)

  2) Memory는 주소를 해독하여 데이터 버퍼에 값을 전달, CPU에게 Data valid limit time(아래 그림의 t2)를 알려준다.

  3) CPU는 t2시간 이전에 데이터를 데이터 버퍼에서 가져간다.

  

 ⓑ Write Cycle

  1) CPU가 메모리에 Write 신호를 보낸다.

  2) CPU가 Data buffer에 데이터를 보낸다. 보내진 데이터는 어느정도 버퍼에 유지가 된다.

  3) Memory는 Data를 가져온다.

  4) CPU가 요청을 보낸 Address를 해독하여 위치에 저장을 한다.

  

 - Memory는 Access time(CPU와의 상호관계)도 중요하지만, CPU가 원하는 적당한 용량을 제공해줘야한다.


* 메모리 용량 확장 및 설계

 - 한정된 RAM size를 이용하여 CPU 요구에 맞추는 것이 가능하다.

 - RAM의 총 크기는 CPU의 Address bus에 있는 Line수와 Data bus에 있는 Line수에 의해 결정된다.

 - Data bus에 있는 Line수는 CPU의 word 사이즈로, 한번에 처리할 수 있는 Data의 크기이다.

 - Address bus에 있는 Line수는 CPU가 선택할 수 있는 레지스터의 량을 예측 할 수 있다.

 - 메모리를 병렬 또는 직렬로 연결하여 이를 맞출 수 있다.

 - 2가지 예를 살펴보자.

 ex1) 병렬 연결


 


  ex2) 직렬연결