Presentation is loading. Please wait.

Presentation is loading. Please wait.

Module 8 Memory Structure For Data Storage

Similar presentations


Presentation on theme: "Module 8 Memory Structure For Data Storage"— Presentation transcript:

1 Module 8 Memory Structure For Data Storage
정용진 교수 (광운대학교)

2 목차 ROM RAM Example 참고 문헌 PROM EPROM EEPROM FLASH SRAM DRAM SDRAM
DDR SDRAM VRAM Example ASIC을 이용한 메모리 예제 FPGA를 이용한 메모리 예제 참고 문헌 Copyrightⓒ2003

3 ROM 메모리 내부 구조 Copyrightⓒ2003 메모리 내부 구조 ▪ Memory array :
- Memory cell의 2차원 격자 구조 - 각 번지당 1,4,8,16bit의 워드 기억 - 메모리 용량 : 워드 수 x 워드길이 ▪ Memory Decoder - Address선을 통해 입력된 address에 해당하는 1개의 워드를 Memory array에서 선택 - Full address : address가 n비트 => 2n개 워드 저장 ( DRAM의 Half address의 경우 : 행 방향 어드레스, 열 방향 어드레스 분리 : /RAS (Row Address Strobe) : /CAS (Column Address strobe) : address가 n비트 => 22n개 워드 저장) ▪ Controller - CS (Chip select), R/W (Read/Write), OE (Output enable) 제어 신호를 받아 데이터 입출력동작 제어 (입출력 버퍼 : 3상태 버퍼) Copyrightⓒ2003

4 ROM ROM의 특징 Copyrightⓒ2003 ROM의 특징
▪ 반도체 메모리의 한 형태로서 데이터를 영구적으로 저장하거나 쉽게 바꿀 수 없도록 설계 ▪ ROM 은 시스템 동작 중 변하지 않는 데이터나 정보를 저장하기 위해 사용 ▪ 비휘발성이므로 전원을 꺼도 소멸되지 않음 ▪ 16x8 Bit ROM에 대한 간단한 내부 구조이다. - 레지스터 배열 : 각 레지스터는 워드크기와 같은 수의 메모리 셀로 구성. 특정 행과 열에 메모리 셀이 존재하도록 각 레지스터의 위치를 지정. - 주소 디코더 : 인가된 주소코드 A3~A0은 배열 내의 어떤 레지스터를 인에이블시켜 8비트 데이터 워드가 버스에 실릴 수 있도록 할 것인가를 결정. - 출력 버퍼 : 주소 입력에 의해 인에이블된 레지스터는 데이터버스에 데이터를 보낸다. Copyrightⓒ2003

5 ROM ROM의 기본 타이밍도 Copyrightⓒ2003 ROM의 기본 타이밍도
▪ access time : 읽기동작 동안에 ROM 의 주소 입력과 데이터 출력 사이에는 지연 시간(tACC) ▪ 출력 인에이블 시간 : /CS입력과 유효한 데이터 출력 사이의 지연 시간(tOE) ▪ 롬의 응용 : 펌웨어, 초기적재 메모리, 데이터 표, 데이터 변환기, 함수발생기, 보조기억장치 Copyrightⓒ2003

6 MASK ROM ROM의 기본 타이밍도Mask ROM의 특징 및 구조 사용자 용도에 따라 제작자에 의하여 프로그램 된 ROM
마스크라고도 하는 감광막(photographic negative)은 칩 상에 전기적 상호접속을 제어하기 위해 사용 다시 프로그램 할 수 없다 활용 예 : 비디오 카드의 폰트 롬, 프린터의 폰트 롬, 키보드, 바이오스 등에 사용 Copyrightⓒ2003

7 PROM PROM의 특징 및 구조 사용자에 의하여 프로그램 되는 ROM 퓨즈링크를 선택적으로 끊음으로 데이터 저장
▪ MASK ROM과 비교하여 제작과정에서 프로그램 되는 것이 아니라 사용자에 의하여 프로그램 되는 ROM ▪ PROM에서는 제작과정에서부터 얇은 퓨즈 링크(fuse link)로 만들어져 있으며 원하는 데이터가 메모리에 저장되도록 하기 위해 사용자는 퓨즈링크를 선택적으로 끊을 수 있다. ▪ 대체적으로 주소입력에 주소를 인가하고 데이터 핀에 원하는 데이터를 인가하여 IC의 특수한 프로그래밍 핀에 10-30V 의 고전압 펄스를 공급함으로써 데이터 값이 그 위 치에 프로그램 되거나 구워진다.(burned-into) <PROM의 Fusing 방식> ▪ 그림은 프로그래밍 동작을 보여준다. 선택된 행(row 0)에 있는 모든 트랜지스터들은 동작되고 Vpp는 드레인 도선에 인가된다. ▪ 논리값 0을 갖는 트랜지스터의 열에는 가용성링크를 통해 고전류가 흘러 퓨즈를 녹이고 개방되므로, 그곳에는 논리값 0이 영구적으로 저장된다. ▪ 논리값 1을 갖는 열은 퓨즈의 한쪽에는 Vpp가 인가되고 다른 한쪽에는 Vdd가 인가되어 적은 전류가 흐르고 퓨즈는 그대로 남아 있게 된다. < PROM의 특징 및 구조 > < PROM의 Fusing 방식 > Copyrightⓒ2003

8 PROM EPROM & EEPROM EPROM EEPROM ▪ 비휘발성 메모리 ▪ 저장 셀 : MOSFET 트랜지스터
▪ 자외선을 쪼임으로써 삭제 가능 EEPROM ▪ 전기적으로 소거 가능한 PROM ▪ MOSFET메모리 셀의 드레인 위에 매우 얇은 산화막을 첨가 ▪ 집적도가 EPROM 에 비해 떨어짐 ▪ 모뎀, 비디오카드, SCSI 컨트롤러 등에 사용 EPROM & EEPROM <EPROM> ▪ 한 번 프로그램된 EPROM 은 저장된 데이터를 그대로 유지하는 비휘발성 메모리이다. ▪ 사용자가 필요에 의해 프로그램하고 지우거나 다시 프로그램 할 수 있다. EPROM을 프로그램하기 위해서는 특정시간 동안에 적절한 칩입력에 특정한 전압레벨을 인가 하는 과정 수반 ▪ EPROM에 있는 저장 셀은 전기적 접점이 없는 실리콘 게이트(즉, 부동게이트)로 된 MOSFET 트랜지스터이다. ▪ 프로그램 된 EPROM셀은 칩 패키지 윈도우를 통해 자외선을 쪼임으로써 이 내용을 지울 수 있다. ▪ 자외선은 광전류를 만들어 저장된 전하를 제거하고, 트랜지스터를 끊어서 셀에 논리 1을 다시 저장시킨다. <EEPROM> ▪ EPROM 의 개량으로 인해 전기적으로 소거 가능한 PROM ▪ MOSFET메모리 셀의 드레인 위에 매우 얇은 산화막을 첨가(전기적으로도 소거가 가능하도록 하는 중요한 특성을 갖게 한다) ▪ 동작 원리 : MOSFET 의 게이트와 드레인 사이에 높은 전압을 인 가함으로써 부동게이트에 전하가 유도된다. 전하는 전력이 제거되더라도 계속 남아 있게 된다. 동일한 역 전압은 부동게이트에 있는 전하를 제거하고 셀을 지운다. ▪ 메모리 셀이 복잡하고 칩 안에 보조회로가 있어 집적도가 EPROM 에 비해 떨어짐 ▪ 모뎀, 비디오카드, SCSI 컨트롤러 등에 사용 Copyrightⓒ2003

9 Flash ROM NOR TYPE & NAND TYPE NOR TYPE NAND TYPE Copyrightⓒ2003 회로 구성
기능 - One Tr. NMOS Floating Gate Device - Program : Hot-Electron - Erase : F-N Tunneling (BTBT Effect) - Program : F-N Tunneling - Erase : F-N Tunneling (No BTBT) - Low Vcc Possible 특징 - Low Density - Higher Cost/Bit - Faster Random Access - Not Scalable - Supplier Differences - Higher Density - Lower Cost/Bit - Faster Sequential Access - Scalable - Single Standard NOR TYPE & NAND TYPE ▪ 간단한 단일 트랜지스터 EPROM 셀과 비슷함 ▪ RAM과 ROM의 중간적 위치 ▪ 비휘발성 메모리 ▪ 플래시메모리 제품은 크게 낸드(NAND)플래시와 노어(NOR)플래시로 구분된다. ▪ 낸드플래시 - 저장단위인 셀을 수직으로 배열 - 좁은 면적에 많은 셀을 만들 수 있다 - 용량을 늘리기가 쉽다 ▪ 노어플래시 - 저장단위인 셀을 수평으로 배열 - 읽기속도가 빠른 장점 - 소량의 핵심 데이터를 저장하는데 많이 사용 ▪ Digital Camera, Voice Recoder등 하드디스크 대용으로 사용 Copyrightⓒ2003

10 Flash ROM Serial Flash Parallel Flash Copyrightⓒ2003

11 SRAM SRAM의 구조 및 특징 메모리 셀 : 플립플롭 DRAM에 비해 속도가 빠름.
리프래시가 필요 없어 메모리 관련 회로가 간단 집적도가 낮고, 소비전력이 크며, 가격이 비싸다. SRAM의 구조 및 특징 <SRAM의 종류> ▪ Async SRAM (Asynchronous SRAM) -386에 L2 캐시로 장착한 이래로 오랫동안 사용한 캐시 램 -CPU 클럭과 비동기적으로 작동 -속도 : 20, 15, 12ns ▪ Sync SRAM (Synchronous SRAM) -데이터의 동기화와 버스트가 동시에 가능 -속도 : 8.5 ~ 12ns ▪ PB SRAM (Pipelined Burst SRAM) -파이프 라이닝으로 데이터를 전송하며 현재 메인보드 캐시로 가장 많이 사용하고 있는 메모리 -메인보드 캐시로 많이 사용되고 있는 메모리 -버스속도 133MHz에서도 제대로 동작 -속도 : 4.5 ~ 8ns Copyrightⓒ2003

12 SRAM SRAM의 사용 예제 <프로그램과 데이터 저장을 위하여 SRAM 메모리를 상용한 예제>
Copyrightⓒ2003

13 DRAM DRAM의 구조 및 특징 메모리 셀 : 캐패시터 리프래시 필요. 집적도 높음. 소비전력이 상대적으로 적음.
범용 컴퓨터의 주기억 장치로 사용 DRAM의 구조 및 특징 ▪ 전원이 공급되더라도 주기적 리프래시를 해주지 않으며 데이터가 소실되는 동적인 RAM ▪ 메모리 셀 : 캐패시터 ▪ 캐패시터의 경우 완전히 절연이 되지 않아 내부 전하를 잃어버림 => 리프래시 필요. 재생회로를 메모리에 부착. ▪ DRAM은 임의의 액세스에 대해 고속으로 읽기, 쓰기가 가능하며, 읽고 쓰는데 걸리는 시간은 거의 같다. ▪ 리프래시 회로로 인해 회성 구성이 복잡해지지만 가격 면에서 저렴(메모리 셀이 스프레드쉬트처럼 배열되어 비트 별로 행 번지와 컬럼번지를 가지기 때문) ▪ 전형적인 DRAM의 액세스는 특별한 열과 행 어드레스의 지정에서 시작되며, 그 후에 신호들은 액세스가 읽기냐 쓰기냐에 따라 활성화와 비 활성화가 된다. ▪ DRAM은 내부의 기억장치들이 행과 열을 이루어서 구성되어 있기 때문에 단지 행 또는 열 단위로 리프래시 시키면 됨 ▪ 집적도 높음. 소비전력이 상대적으로 적음. ▪ 범용 컴퓨터의 주기억 장치로 사용 <DRAM의 Block Diagram> <DRAM의 메모리 셀 배열 구조> Copyrightⓒ2003

14 DRAM DRAM의 종류 FPM RAM (Fast Page Mode RAM)
EDO RAM (Extend Data Out RAM) BEDO RAM (Burst Extended Data Out RAM) DRAM의 종류 ▪ FPM RAM (Fast Page Mode RAM) - EDO 램이 나오기 전 꽤 많이 사용 - 접근속도 : 60ns ~ 120ns ▪ EDO RAM (Extend Data Out RAM) - 초기화 바로 직전 이용했던 메모리 주소 기억, CPU가 데이터를 찾을 때 참고하기 때문에 작업속도가 빠르다. - CPU 버스속도가 66MHz 이상일 때 제대로 작동 ▪ BEDO RAM (Burst Extended Data Out RAM) - Burstring 기술을 이용, 빠르게 데이터를 처리 - 전송하는 각 블록마다 데이터 주소가 들어있는 Burst 캐리어를 집어 넣어 다음 처리할 데이터가 어디에 있는지 미리 알 수 있게 한 것 - SM램보다 싸고 EDO램보다 빠르다 Copyrightⓒ2003

15 DRAM & SRAM DRAM과 SRAM 비교 DRAM SRAM Refresh 주기적 필요 없다 액세스 주기 느리다 빠르다
회로구조 단순하다 복잡하다 칩크기 작다 크다 가격 싸다 비싸다 용도 일반메모리 캐시메모리 DRAM과 SRAM 비교 SRAM의 내부구조 (6개의 TR로 구성) DRAM의 내부구조 (1개의 TR과 C로 구성) Copyrightⓒ2003

16 DRAM & SRAM SRAM의 기본적인 타이밍도 DRAM의 기본적인 타이밍도 Copyrightⓒ2003
< Read Timing> < Write Timing > < Read Timing> < Write Timing> Copyrightⓒ2003

17 SDRAM SDRAM의 구조 및 특징 High-speed Dynamic Random Access Memory.
▪ 최대한 Bus Clock에 동기되어 동작 : DRAM Controller에 의한 Bus Clock Synchronization 시에 소용 되는 시간, Interleaving Control 에 추가되는 시간 등을 없애며 DRAM 속도를 Bus Clock의 정수배로 고정 시켜 System 설계에 편리를 도모토록 함 ▪ EIA/JEDEC JC42.3 DRAM 표준 위원회에서 국내 반도체 회사, 일본 및 미국의 반도체와 Computer회사가 모여 협의를 통해 표준을 결정한 Synchronous DRAM 표준안 을 따르고 있는 DRAM ▪ 특징 - Synchronous I/O - Burst Access (연속 Data Access 의 고속화) - Multibank 구성 - Command 형식의 Access - Pipelined Data Path Copyrightⓒ2003

18 SDRAM SDRAM Controller 구조 Copyrightⓒ2003 SDRAM Controller 구조
▪ CKE (Clock Enable) : Low 일 경우 Clock 동작을 멈추고 다른 모든 입력 무시되며 Power Down, Self Refresh 또는 Clock Suspend Mode에 들어감. ▪ /CS : /RAS, /CAS 및 /WE 등 모든 Command 신호와 Address 입력을 활성화시킴. ▪ DQM (Input Mask & Output Enable) : High 가 되면 CAS Latency와는 무관하게 2 clock Cycle Latency 후에 모든 Data Pin이 Hi-Z 상태가 됨. ▪ Burst Counter : 첫 번째 Column Address를 시작점으로 하여 정해진 길이의 Column Address를 발생하기 위한 Column Address 발생기 ▪ Sense Amp : Bit Line에 실린 Data를 증폭하여 Latch Copyrightⓒ2003

19 SDRAM SDRAM의 동작 방법 Copyrightⓒ2003 SDRAM의 동작 방법
▪ SDRAM의 다양한 Mode간의 천이를 나타낸 State Diagram ( Idle, Row Active, Read/Write, Precharge) ▪ IDLE : Precharge 가 완료되어 있고 Sense Amp 에 Data 가 없는 상태 (Row Empty). SDRAM에 명령이 입력되면 한 Bank의 한 Row 가 활성화 된다 ▪ Bank가 활성화되고 있는 중간에는 해당 Bank에는 NOP명령만이 입력 ▪ Row Active : Data 가 Sense Amp에 Latch 되면 해당 Bank가 Row Active Sate 로 진입. Read, Read with Auto-Precharge, Write, Write with Auto-Precharge 등의 명령을 입력시켜 해당 Bank의 Sense Amp에 저장되어 있는 Data를 Burst Read/Write 할 수 있다. 동일한 Row에 대하여 Read 동작과 Write 동작은 서로 병행해서 진행이 가능 하다. ▪ Read (Write) : 다음의 4가지 방법으로 중지시킬 수가 있다. 1)해당 Bank에 Precharge 명령을 입력 : Precharge 상태로 간다. 2)Burst Terminate 명령을 입력 : Row Active 상태가 된다. 3)반대 Bank 에 Read 나 Write 명령을 입력 : 현재의 Bank는 Row Active 상태 4) Burst Length 끝까지 동작시킴 : Row Active 상태가 된다. ▪ Read (Write) with Auto-Precharge : Burst Length 끝까지 동작된 후 동작이 중지. 해당 Bank 는 Precharge로 진입. ▪ Full Page Burst Length 의 경우에는 Auto-Precharge 상태로 진입할 수가 없다. ▪ Precharge : 해당 Bank의 Bit Line 전압을 Precharge 전압으로 일치시켜 다음 동작에 대비하는 상태. 일정 기간이 소요되며 이 사이에는 해당 Bank에는 NOP명령만이 입력될 수가 있음. Precharge 가 완료되면 해당 Bank는 다시 Idle 상태가 된다. ▪ 한 Bank 가 한 State에서 다른 State 로 천이하는 사이에 다른 Bank 가 활성화될 수가 있다. ▪ Bank 가 Row Active 나 Read, 또는 Write 상태에 있을 때는 Clock Suspend 가 가능하다. ▪ Clock Suspend 는 현재 상태에 관계없이 양쪽 Bank 모두에 영향을 주며 외부 Clock 이 무시되고 모든 Cycle은 NOP으로 처리된다. Copyrightⓒ2003

20 SDRAM SDRAM의 동작 모드 Copyrightⓒ2003 SDRAM의 동작 모드 1) NOP과 Device Deselect
- NOP : Cycle을 요하는 동작(Bank Activate, Burst Read, Auto-Refresh) 중에 새로운 동작이 시작되는 것을 막아줌. - Device Deselect : /RAS, /CAS, /WE 및 Address 입력이 비활성화 된다. 2) Power UP : SDRAM은 Clock을 먼저 정상화시킨 뒤 SDRAM을 작동시켜야 한다. 3) Mode Register (MRS) : SDRAM의 다양한 동작 Mode를 제어하기 위한 Data를 Programming 하여 저장하는 장치 4) Bank Activate : Bank Activate 명령은 Idle 상태에 있는 Bank 내의 임의의 Row를 선택하기 위해 이용 5) Burst Read : 활성화된 bank 냉의 한 Row로부터 Clock에 동기 시켜 연속해서 Data를 Access 하는 Mode이다. 6) Burst Write : Burst Write 는 Burst Length 와 Burst Type 에 따라 인접한 Column Address 에 연속된 Clock 에 동기시켜 Data를 Write 하는 Mode. 7) DQM Masking : DQM 은 Read 동작 시에는 /OE Pin 과 같이 Output Buffer를 Hi-Z 로 만드는 역할을 하지만 Write 동작 시에는 입력이 내부로 전달되는 것을 Masking 8) Precharge : 활성화되어 있던 Bank 가 Precharge 동작을 수행 9) Auto Precharge : Burst 완료 후 자동으로 해당 Bank를 Precharge 시키고 Idle 상태로 돌려 놓는다. 10) Precharge All : 모든 Bank를 Precharge 시킬 수가 있다. 11) Auto Refresh : DRAM의 Refresh 는 Row단위로 진행되므로 한번의 Auto Refresh Cycle에 하나의 Row의 Cell 들이 Refresh 되는데 이 때의 Row Address는 내부의 Refresh Address Counter에 의해 생성 12) Self Refresh : Low Power 동작이나 Data를 오랜 기간 저장하기 위해 사용되는 Mode(CKE Pin을 제외한 Clock을 포함한 전체 입력 Pin이 비활성화) 13) Power Down : 작은 구동 능력을 갖는 Clock Buffer 는 살려두고 큰 구동 능력을 갖는 Clock Buffer 는 비활성화 14) Clock Suspend : 입력되는 Clock에 대해서는 Write가 불가능하고 Read 시에는 앞서의 Data가 계속 Latch되어 출력 Copyrightⓒ2003

21 SDRAM SDRAM과 ARM-Based System Interface
< Eureka Technology의 EP504의 Block Diagram (User Interface는 System Core Logic (DMA or PCI bus bridge를 의미한다.) > Copyrightⓒ2003

22 DDR SDRAM DDR SDRAM의 구조 및 특징 Copyrightⓒ2003 DDR SDRAM의 구조 및 특징
▪ Synchronous DRAM의 일종으로 SDRAM을 가장 최적화 시켜 Speed를 향상 시킴. ▪ 필요성 :펜티엄4의 대역폭 3.2GB/s 200Mhz이상으로 작동하는 DDR 메모리가 필요 ▪ SDRAM은 병렬전송(회로 복잡) ▪ Dual-Edge Clock System으로 같은 동작 주파수 대비 2배의 성능 향상 (SDRAM은 Single-Edge Clock System) ▪ Dual Edge Clock System을 위해 주(Master)클럭 외에 부(Slave)클럭 필요. 두 클럭은 1/4 정도의 시간차를 두고 엇갈려 쏘아지게 된다. ▪ 266MHz 대역폭 DDR 은 비슷한 가격대의 SDRAM의 대역폭 보다 최고 2.6배의 메모리 대역폭을 제공할 수 있다. Copyrightⓒ2003

23 DDR SDRAM DDR SDRAM의 기본 타이밍도 Copyrightⓒ2003 DDR SDRAM의 기본 타이밍도
▪ Dual Edge Clock System을 사용함으로 주파수 대비 2배의 성능 향상. Single-Edge Clock System인 SDRAM과 비교하여 2배의 성능을 보여줌. Copyrightⓒ2003

24 DDR SDRAM DDR SDRAM Controller(1/2) Copyrightⓒ2003
▪ DDR SDRAM DIMM 인터페이스를 위한 Controller에는 3가지의 state machine이 있다. 1) main state machine 2) read state machine 3) write state machine ▪ Read : LOAD MODE REGISTER->ACTIVE->BURST_READ ->PRECHARGE_ALL (address A[10] = 10) ▪ Write : LOAD MODE REGISTER->ACTIVE->BURSR_WRITE -> PRECHARGE_ALL (address A[10] = 10) Copyrightⓒ2003

25 DDR SDRAM DDR SDRAM Controller(2/2) Copyrightⓒ2003
▪ DDR SDRAM DIMM 인터페이스를 위한 Controller에는 3가지의 state machine이 있다. 1) main state machine 2) read state machine 3) write state machine ▪ Read : LOAD MODE REGISTER->ACTIVE->BURST_READ ->PRECHARGE_ALL (address A[10] = 10) ▪ Write : LOAD MODE REGISTER->ACTIVE->BURSR_WRITE -> PRECHARGE_ALL (address A[10] = 10) Copyrightⓒ2003

26 DDR SDRAM & SDRAM DDR SDRAM과 SDRAM의 성능 비교 Features DDR SDRAM SDRAM
General Package 66pin TSOP-II 54pin TSOP II Organization X4, x8, x16 Internal banks 4 2, 4 Performance Applied clock 66Mhz ~ ~ 143Mhz CAS latency 1.5, 2, 2.5 2, 3 Write latency 1 Burst length 2, 4, 8 2, 4, 8, full page Interface I/O levels SSTL LVTTL On-chip DLL Yes Data Strobe (DQS) No Power Down Clock suspend Burst read single bit write Auto Precharge / Precharge all Auto Refresh/Self refresh Copyrightⓒ2003

27 VIDEO RAM VIDEO RAM의 필요성
많은 수의 Pixel 요구 => 많은 메모리 요구( 1280 x 1024 x 32 bits/pixel => 5.1Mb ) Double Buffering => Double Memory Two frames of above => 10.2Mb Pixel수보다 많은 데이터 저장 필요(e.g. textures) Performance in this instance means BANDWIDTH 빠른 입출력 성능 요구 SGRAM (Synchronous Graphics RAM) WRAM ( Windows RAM ) 3D-RAM VIDEO RAM의 필요성 ▪ SGRAM (Synchronous Graphics RAM) - 비교적 저가의 비디오 메모리 - 이미지에 색상을 채우는 데이터를 보다 효율적으로 다룰 수 있도록 블록 기록 기법을 사용 - 싱글 포트 램 ▪ WRAM ( Windows RAM ) - 삼성에 의해서 개발 - 고속 처리와 듀얼 포트 - 이 램은 VRAM을 기반으로 만들어 졌으며 데이터의 블록전송이 가능 ▪ 3D-RAM - OpenGL 파이프 라인을 지원하기 위한 ASM (Application Specific Memory) Copyrightⓒ2003

28 VIDEO RAM Video RAM의 구조 및 특징
Shift Register부( SAM : Serial Access Memory)를 내장 Random Access Port : Graphic Controller 가 drawing 하는데 이용 Serial Port : CRT Display 용으로 이용 Dual Port Ram Video RAM의 구조 및 특징 ▪ 종래 DRAM의 Random Access 부 외에 Shift Register부( SAM : Serial Access Memory)를 내장 ▪ RAM과 SAM이 각각 독립적인 Port를 갖고 있어 독립적으로(비동기적으로) Access 가능 ▪ RAM 부의 Random Access Port는 Graphic Controller 가 drawing 하는데 이용하고 SAM의 serial Port 는 CRT Display 용으로 이용한다면 우수한 graphic Display Memory 를 실현할 수 있다. ▪ 이것은 monitor 로 고속으로 data를 전송하는 serial Access Memory와 CPU가 자유로이 접근할 수 있는 Ram 을 집적한 메모리로서 입출력 단자가 SAM용과 Ram 용의 2개여서 Dual Port Ram이라 불린다. ▪ VRAM 동작 : VRAM의 RAM동작은 종래의 DRAM과 동일하여 /RAS에 의해 Row Address가 입력되고 /CAS에 의해 Column Address가 입력됨으로써 Cell이 선택된다. /RAS와 /CAS사이의 시간과 /RAS Precharge Time 등도 모두 동일하다. 또한 Read 동작도 동일하다. Copyrightⓒ2003

29 SAMSUNG STD130 메모리를 위해 제공하는 File 구조
삼성 STD130 Library에서 제공하는 ROM을 사용하여 Simulation 하기 위해서는 두 가지의 파일이 필요 메모리 Model Source 파일 ROM의 Data를 저장하는 File명의 의미 삼성 STD130 Library에서 제공하는 RAM을 사용하여 Simulation 하기 위해서는 Memory Model 파일이 필요 메모리를 위해 제공하는 File 구조 1. 삼성 STD130 Library에서 제공하는 ROM을 사용하여 Simulation 하기 위해서는 두 가지의 파일이 필요 ▪ 메모리 Model Source 파일 mrom_hd_256x32m8b1_seed_rom_g_ss0.mdlp (파일명 예제) - mrom_hd : High-Density ROM : ROM의 Word Depth (예제에서는 : Depth가 256이므로 8bit의 address가 필요) : ROM의 출력 bit - m8b : ROM 종류 - seed_rom_g_ss0 : ROM의 이름(사용자가 지정 : SEED 암호 알고리즘의 g-function의 SS0-box ROM을 의미) ▪ ROM의 Data를 저장하는 File로 각각의 의미는 다음과 같다. mrom256x32_seed_rom_g_ss0.dat (파일명 예) - mrom : ROM 임을 의미 : ROM의 Word Depth : Data bit를 의미 - seed_rom_g_ss0 : ROM 이름(사용자 지정 : SEED 암호 알고리즘의 g-function의 SS0-box ROM) 2. 삼성 STD130 Library에서 제공하는 RAM을 사용하여 Simulation 하기 위해서는 Memory Model 파일이 필요 arfram_hd_1r1w_16x32m2.mdlp (파일명 예제) - High-Density Multi-Port Asynchronous Register File로써 입출력 Address를 별도로 가지고 있으며 레지스터와 비슷한 동작 파형을 가지고 있어 편리하다. - arfram_hd : High-Density Multi-Port Asynchronous Register File : Word Depth : 출력 bit의 크기 - m : RAM 종류 Copyrightⓒ2003

30 SAMSUNG STD130 SDT130에서 제공하는 ROM STD130에서 제공하는 RAM DROM_HD
: High-Density Synchronous Diffusion Programmable ROM MROM_HD : High-Density Synchronous Metal-2 Programmable ROM STD130에서 제공하는 RAM High-Density Compiled Memory Low-Power Compiled Memory SDT130에서 제공하는 ROM & STD130에서 제공하는 RAM 1. High-Density Compiled Memory - SPSRAM_HD : High-Density Single-Port Synchronous SRAM - SPSRAMBW_HD : High-Density Single-Port Synchronous SRAM with Bit-Write - SPSRAMR_HD : High-Density Single-Port Synchronous SRAM with Redundancy - DPSRAM_HD : High-Density Dual-Port Synchronous SRAM - DPSRAMBW_HD : High-Density Dual-Port Synchronous SRAM with Bit-Write - SPARAM_HD : High-Density Single-Port Asynchronous SRAM - SPARAM_HD : High-Density Single-Port Asynchronous SRAM with Bit-Write - ARFRAM_HD : High-Density Single-Port Multi-Port Asynchronous Register File - FIFO_HD : High-Density Synchronous First-In First-Out Memory - CAM_HD : High-Density Synchronous Content Addressable Memory 2. Low-Power Compiled Memory - SPSRAM_LP : Low-Power Single-Port Synchronous SRAM - SPSRAMBW_LP : Low-Power Single-Port Synchronous SRAM with Bit-Write - DPSRAM_LP : Low-Power Dual-Port Synchronous SRAM - DPSRAMBW_LP : Low-Power Dual-Port Synchronous SRAM with Bit-Write - SPARAM_LP : Low-Power Single-Port Asynchronous SRAM - SPARAMBW_LP : Low-Power Single-Port Asynchronous SRAM with Bit-Write Copyrightⓒ2003

31 SAMSUNG STD130 ROM 모델 파일 편집법(1/4) [예제: Memory model file의 Header]
-- LIBRARY : STD130 -- LANGUAGE : Verilog-HDL -- MEMORY TYPE : mrom :SINGLE PORT METAL ROM . -- CONFIGURATION : Depth=256, Bits=32, Ymux=8, bank=1. -- AUTHOR(S) : Kim Hae-joong -- REVISION : (V1.0) -- FILE NAME : mrom_hd_256x32m_seed_rom_g_ss0.mdlp ROM 모델 파일 편집법(1/4) ▪ 먼저 메모리 Model 파일의 Header 부분을 편집 - Library : Library 명(예제에서는 삼성) - STD130 Library - Language : Verilog-HDL 또는 VHDL 선택 - Memory Type : Library에서 Memory 종류 - Configuration : Depth(메모리크기), Bit(출력 bit)와 Library를 참고하여 Ymux (column mux type), bank(bank 수) - Author (s) : 작성자 이름 - Revision : 최종 개정일과 버전 - File Name : Memory 모델 파일명 Copyrightⓒ2003

32 SAMSUNG STD130 ROM 모델 파일 편집법(2/4) [예제 : Memory model file의 Header]
Single Port Metal ROM WITH : CK clock input (this is actually clock) address port DOUT data output CSN active low chip select (power down) OEN active low output drive enable (tri-state outputs) word_width default word width (= 32) word_depth default RAM depth (= 256) addr_width default address width (= 8) Note : 1. To suppress input unknown related warning message, use + define + no_mem_message ROM 모델 파일 편집법(2/4) ▪ word_width default word width (= 32) - 출력 Word Width (예: 32bit) ▪ word_depth default ROM depth (= 256) - Memory 크기 (예: 256) ▪ addr_width default address width (= 8) - address bit (예: 8) ▪ 각 포트에 대한 설명을 써준다. ▪ Note에 그 밖에 주의 할 사항이나 특이사항을 써준다. Copyrightⓒ2003

33 SAMSUNG STD130 ROM 모델 파일 편집법(3/4) [예제 : Memory model file]
`timescale 1ns / 100ps module mrom_hd_256x32m8b1_seed_rom_g_ss0 ( CK, CSN, OEN, A, DOUT ); parameter word_width = 32, word_depth = 256, addr_width = 8; ROM 모델 파일 편집법(3/4) ▪ `timescale : Simulation 시에 time scale을 써준다. ▪ Memory module 이름을 쓰고 입출력 포트를 선언 - CK : clock - CSN : Chip Select Active Low - A : Address - DOUT : Data Output - parameter로 word width, word depth, address width 등을 선언 ▪ Module 중간의 initial $readmemb 부분에 ROM Data File을 써준다 [예제 : Memory model File] initial $readmemb("mrom256x32_seed_rom_g_ss0.dat", memory); Copyrightⓒ2003

34 SAMSUNG STD130 ROM 모델 파일 편집법(4/4) [예제 : ROM Data File]
……… ROM 모델 파일 편집법(4/4) ▪ ROM Data File 편집법 : mrom256x32_seed_rom_g_ss0.dat ▪ Data는 한 행씩 2진수 0과 1만을 사용해서 써 준다. ▪ 한 행씩 memory의 내용을 써준다. ▪ 첫 번째 행부터 순서대로 address 00h, 01h, 02h, 03h, … … , FFh의 address에 ROM Data 내용 삽입 Copyrightⓒ2003

35 SAMSUNG STD130 RAM 모델 파일 편집법(1/3) [예제: Memory model file의 Header]
-- LIBRARY : STD130 -- LANGUAGE : Verilog-HDL -- MEMORY TYPE : mrom :SINGLE PORT METAL ROM -- CONFIGURATION : Depth=256, Bits=32, Ymux=8 -- AUTHOR(S) : Kim Hae-joong -- REVISION : (V1.0) -- FILE NAME : arfram_hd_1r1w_16x32m2.mdlp Note : To suppress input unknown related warning message, use + define + no_mem_message RAM 모델 파일 편집법(1/3) ▪ 메모리 Model 파일의 Header 부분을 편집 - Library : Library 명 - Language : Verilog-HDL 또는 VHDL 선택 - Memory Type : Library에서 Memory 종류 - Configuration : Depth(메모리크기), Bit(출력 bit) 와 Library를 참고하여 Ymux (column mux type) 결정 - Author(s) : 작성자 이름 - Revision : 최종 개정일과 버전 - File Name : Memory 모델 파일명 ▪ Note에 그 밖에 주의 할 사항이나 특이사항을 써준다. Copyrightⓒ2003

36 SAMSUNG STD130 RAM 모델 파일 편집법(2/3) [예제 : Memory model file]
`timescale 1ns / 100ps module arfram_hd_1r1w_16x32m2 (CK0, WEN0, DI0, REN0, OEN0, RA0, WA0, DOUT0); parameter WORDS = 16, BITS = 32, WRITES = 1, READS = 1, ADRS = 4; RAM 모델 파일 편집법(2/3) ▪ `timescale : Simulation 시에 time scale을 써준다. ▪ Memory module 이름을 쓰고 입출력 포트를 선언 - CK0 : clock - WEN : Write Enable (Active Low) - DI : Data Input - REN0 : Read Enable (Active Low) - OEN0 : Out Enable (Active Low) - RA : Read Address - WA0 : Write Address - DOUT0 : Data Output - parameter로 word width, bit, write, address 등을 선언 Copyrightⓒ2003

37 SAMSUNG STD130 RAM 모델 파일 편집법(3/3) [예제 : Memory model File]
/*** PRE-DATA-LOAD ROUTINE *****************/ parameter MEMORY_DATA_FILE = ""; initial if (MEMORY_DATA_FILE != "") begin $readmemb(MEMORY_DATA_FILE, mem); $display(">> Note : RAM instance, %m is running with an external data file called %s.", MEMORY_DATA_FILE); $display(“ This PRE-DATA-LOADING feature is used for faster data loading of RAM"); $display(“ to reduce simulation run time. But, Please remember this :"); $display(" Because this behavior is not identical with physical memory operation,"); $display(“ this feature should not be used in real simulation."); end RAM 모델 파일 편집법(3/3) ▪ RAM은 초기 값이 불필요 ▪ Memory Data 파일이 필요하지 않다. ▪ Module 중간의 MEMORY_DATA_FILE에는 “” 공백 Copyrightⓒ2003

38 SAMSUNG STD130 NC-Destop에서의 검증(1/2) Copyrightⓒ2003
▪ Memory model의 Compile ▪ 메뉴의 Tools -> Verilog compiler를 이용하여 Compile - Defile Macro부분에 [v]체크 해준 후 functional_mode 라고 써 주어야 파형 검증 가능 ▪ 검증을 위한 Test Vector를 작성 - 반드시 timescale을 Memory model file과 일치시킨다. ▪ Launch Elaborator와 Launch Simulator를 순서대로 실행하여 Simulator를 실행해 파형 검증을 수행 Copyrightⓒ2003

39 SAMSUNG STD130 NC-Destop에서의 검증(2/2) Copyrightⓒ2003
▪ ROM의 Waveform 검증 화면 - Clock에 동기화되어 address 10h와 20h의 값이 출력되는 것을 볼 수 있다 - 파형 검증이 완료되면 Synopsys 등에서 STD130 Library를 이용하여 합성할 수 있다. Copyrightⓒ2003

40 FPGA (Altera) Altera LPM Library ROM
: 내부 ROM을 사용하기 위하여 LPM Library를 이용하는 방법 ROM Data 파일을 작성 한다. Mega Wizard를 이용하여 ROM을 생성한다. 생성된 ROM을 Quartus II의 Simulator를 이용하여 검증한다. MegaWizard로 생성된 LPM Library ROM Module Copyrightⓒ2003

41 FPGA (Altera) ROM Data 생성 Copyrightⓒ2003 ROM Data 생성
1. File → New → Other Files → Memory Initialization File을 선택하여 ROM Data 생성 파일을 만든다. 2. 전체 word의 크기(Depth)와 Word size(출력 bit 크기)를 선택한다. 3. Memory Data 편집 창에서 ROM Data를 편집한다. Memory Data 파일을 저장한 후 Text로 불러서 직접 편집할 수도 있다. 필요한 경우 View → Address Radix 또는 Memory Radix를 선택하여 Binary, Hexa 등을 선 택하여 편집할 수 있다. 4. 편집이 완료 되면 ROM Data를 mif 또는 hex 형식으로 저장한다 Copyrightⓒ2003

42 FPGA (Altera) MegaWizard를 이용한 ROM 생성(1/3) Copyrightⓒ2003
2.새로운 Mega function을 실행 시키기 위해 Create a new custom Mega function variation을 선택 한 후 Next > 3. 왼쪽창의 storage에서 LPM_ROM을 선택한다. 4. device family에서 device의 종류를 선택한다. (예 : APEX20KE, FLEX10KE) 5. AHDL, VHDL, Verilog-HDL 을 선택한다. (여기서는 Verilog-HDL 선택) 6. output file 경로와 File 명을 정한 후 Next > Copyrightⓒ2003

43 FPGA (Altera) MegaWizard를 이용한 ROM 생성(2/3) Copyrightⓒ2003
7. device 종류를 선택한다. (예: APEX20KE) 8. ‘q’ output bus의 bit 크기를 지정한다. (예: 32bit) 9. address의 크기를 지정한 후 Next > (예: 8bit) 10. 필요에 따라 동기 ROM인 경우에는 ‘address’ input port 레지스터를 설정[v]하고 비동기 ROM일 경우에는 체크를 해지하여 비동기 ROM을 생성한다. 설정 한 후 Next > Copyrightⓒ2003

44 FPGA (Altera) MegaWizard를 이용한 ROM 생성(3/3) Copyrightⓒ2003
11. 작성된 ROM data File을 선택한다. 선택한 후 Next > 12. 최종적으로 아래와 같은 파일들이 생성된다. Finish 를 이용하여 Quartus II에서 사용할 수 있는 LPM Library ROM module 파일을 생성한다. Copyrightⓒ2003

45 FPGA (Altera) MegaWizard로 생성된 동기 ROM Simulation Copyrightⓒ2003
Quartus II의 Simulator를 이용하여 아래와 같은 결과를 얻을 수 있다. Inclock이 Negative edge일 때 address 값이 저장되어 ROM Data File에 저장되어 있는 06h, 07h, 08h 번지의 값이 출력되고 있다 Copyrightⓒ2003

46 FPGA (Altera) MegaWizard로 생성된 LPM Library ROM Module Copyrightⓒ2003
module altera_rom_32x256 ( address, inclock, q); input [7:0] address; input inclock; output [31:0] q; wire [31:0] sub_wire0; wire [31:0] q = sub_wire0[31:0]; lpm_rom lpm_rom_component ( .address (address), .inclock (inclock), .q (sub_wire0)); defparam lpm_rom_component.intended_device_family = "APEX20KE", lpm_rom_component.lpm_width = 32, lpm_rom_component.lpm_widthad = 8, lpm_rom_component.lpm_address_control = "REGISTERED", lpm_rom_component.lpm_outdata = "UNREGISTERED", lpm_rom_component.lpm_file = "C:/newchips/ram_rom_example/altera_rom/altera_rom_32x256.mif", lpm_rom_component.lpm_type = "LPM_ROM"; endmodule Copyrightⓒ2003

47 FPGA (Altera) Altera LPM Library RAM
: 내부 RAM을 사용하기 위하여 LPM Library를 이용하는 방법 Mega Wizard를 이용하여 RAM을 생성 생성된 RAM을 Quartus II의 Simulator를 이용하여 검증 MegaWizard로 생성된 LPM Library RAM Module Copyrightⓒ2003

48 FPGA (Altera) MegaWizard를 이용한 RAM 생성(1/3) Copyrightⓒ2003
2. 새로운 Mega function을 실행 시키기 위해 Create a new custom Mega function variation을 선택 한 후 Next > 3. 왼쪽창의 storage에서 RAM 종류를 선택한다. 4. device family에서 device의 종류를 선택한다. (예 : APEX20KE, FLEX10KE) 5. AHDL, VHDL, Verilog-HDL을 선택한다. (여기서는 Verilog-HDL 선택) 6. output file 경로와 File 명을 정한 후 Next > Copyrightⓒ2003

49 FPGA (Altera) MegaWizard를 이용한 RAM 생성(2/3) Copyrightⓒ2003
7. device 종류를 선택한다. (예: APEX20KE) 8. ‘q’ output bus의 bit 크기를 지정한다. (예: 32bit) 9. address의 크기를 지정한 후 Next > (예: 8bit) 10. 필요에 따라 ‘data’ input port, ‘address’ input port, ‘q’ output port 등을 설정한다. Next > Copyrightⓒ2003

50 FPGA (Altera) MegaWizard를 이용한 RAM 생성(3/3) Copyrightⓒ2003
11. RAM block type를 Auto로 설정한다. 12. RAM의 초기값을 Data File로 설정할 수 있다. 13. Altera 사의 Device의 EABs or ESB를 사용하지 않고 로직셀만으로 구성하려면 체크[v] 해준다. 그러나 Lpm Library 생성하는 이유가 Device내의 EABs or ESB 부분을 사용하기 위한 것이므로 체크하지 않는다. 14. 최종적으로 아래와 같은 파일들이 생성된다. Finish 를 이용하여 Quartus II에서 사용할 수 있는 LPM Library RAM module 파일을 생성한다. Copyrightⓒ2003

51 FPGA (Altera) MegaWizard로 생성된 LPM Library RAM Module Copyrightⓒ2003
module altera_ram_32x256 (address, we, inclock, data, q); input [7:0] address; input we; input inclock; input [31:0] data; output [31:0] q; wire [31:0] sub_wire0; wire [31:0] q = sub_wire0[31:0]; lpm_ram_dq lpm_ram_dq_component ( .address (address), .inclock (inclock), .data (data), .we (we), .q (sub_wire0)); defparam lpm_ram_dq_component.intended_device_family = "APEX20KE", lpm_ram_dq_component.lpm_width = 32, lpm_ram_dq_component.lpm_widthad = 8, lpm_ram_dq_component.lpm_indata = "REGISTERED", lpm_ram_dq_component.lpm_address_control = "REGISTERED", lpm_ram_dq_component.lpm_outdata = "UNREGISTERED", lpm_ram_dq_component.use_eab = "ON", lpm_ram_dq_component.lpm_type = "LPM_RAM_DQ"; endmodule Copyrightⓒ2003

52 FPGA (Altera) MegaWizard로 생성된 동기 ROM Simulation Copyrightⓒ2003
Quartus II의 Simulator를 이용하여 아래와 같은 결과를 얻을 수 있다. Inclock이 Positive edge일 때 ‘we’이 1이면 해당 address에 data 값이 저장된다. Copyrightⓒ2003

53 참고문헌 ROM & RAM EXAMPLE Copyrightⓒ2003 1. ROM & RAM
[1] John F. Wakerly, DIGITAL DESIGN PRINCIPLES & PRACTICES, Prentice Hall, 2nd Ed. [2] 유회준, IDEC 교재개발 시리즈 12 고성능 DRAM, 시그마 프레스, 2000. [3] Tocci, Widmer, Digital Systems principles and Applications, Prentice Hall, 8th Ed, 2002. [4] T.Sunaga, et al. "A Full Bit Prefetch Architecture for Synchronous DRAM's", IEEE J. Solid-State Cir, vol. 30, No. 9, pp , Sep [5] R. Pinkhan, D.J.Redwine, F.A.Valente, T.H.Henderson and D.F.Anderson, "A High Speed Dual Port Memory with simultaneous Serial and Random Mode Access for Vidoe Applications", IEEE J.Solid State Circuits, vol. SC-19, No.6, pp , DEC [6] C.Green, "Analyzing and implementating SDRAM and SGRAM controllers", pp , EDN Feb. 2, 1998. [7] Y. Oshima, B.J.Shey and S.H.Jen, "High Speed Memory Architectures for Multimedia Applications", IEEE Circuits & Systems, pp.8-13, Jan [8] J.D.Nicoud, "Video Rams", IEEE Micro, vol. ED-31, no. 11, pp.8-27, Feb [9] Lattice IspLever Core, DDR SDRAM Controller User's Guide. [10] Hynix HY29F002t Data Sheet – Flash. [11] Hynix HY5DU284228B(L)T Data Sheet - DDR SDRAM. [12] Samsung Application Note, "NAND Flash Memory Application“. [13] Xilinx Application Note "Xilins Solutions for Synchronous DRAMs(SDRAMs)“. [14] Altera DDR SDRAM Controller MegaCore Function User Guide. [15] Xilinx Application Note, "Synthesizable DDR SDRAM Controller”. 2. EXAMPLE [1] Samsung "ASIC STD um 1.8V CMOS Standard Cell Library for Pure Logic Products“. [2] Altera "APEX 20K Programmable Logic Device Family Data Sheet“. [3] Altera "Introduction to Quartus II“. [4] Cadence "Using Cadence NC Tools in a Quartus II Design Flow“. Copyrightⓒ2003

54 담 당 자 : 광운대학교 전자통신공학과 정용진 교수
주 소 : 서울특별시 노원구 월계동 광운대학교 전자통신공학과 전화 번호 : 팩 스 : 이 메 일 : Copyrightⓒ2003


Download ppt "Module 8 Memory Structure For Data Storage"

Similar presentations


Ads by Google