1 / 56

교과명 : 컴퓨터 구조 내부 기억장치

교과명 : 컴퓨터 구조 내부 기억장치. 남영진 (yjnam@daegu.ac.kr) 대구대학교 정보통신대학 컴퓨터 .IT 공학부 , 공대 3516A 호 Tel: 053-850-6586. 반도체 기억장치 종류. 반도체 기억장치의 기본 요소. 기억소자 (memory cell) 두개의 안정된 상태 (0 or 1) 을 가짐 상태를 set & sense 할 수 있음. 반도체 주기억장치. Dynamic RAM(DRAM) 커패시터 (capacitor) 에 전하를 충전하는 방식으로 데이터를 저장

pabla
Download Presentation

교과명 : 컴퓨터 구조 내부 기억장치

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 교과명: 컴퓨터 구조내부 기억장치 남영진 (yjnam@daegu.ac.kr) 대구대학교 정보통신대학 컴퓨터.IT 공학부, 공대3516A호 Tel: 053-850-6586

  2. 반도체 기억장치 종류

  3. 반도체 기억장치의 기본 요소 • 기억소자(memory cell) • 두개의 안정된 상태(0 or 1)을 가짐 • 상태를 set & sense 할 수 있음

  4. 반도체 주기억장치 • Dynamic RAM(DRAM) • 커패시터(capacitor)에 전하를 충전하는 방식으로 데이터를 저장 • 커패시터의 방전 성질 때문에, 주기적으로 재충전(refresh) • 아날로그 장치 & 휘발성 • Static RAM에 비해서 per-bit 회로가 간단하고 면적이 작음 • 높은 밀도 & 가격이 저렴 • 재충전 회로의 지원이 필요 • Static RAM에 비해서 다소 느림

  5. write read “1” DRAM 동작 • Bit에 대한 읽기/쓰기 요구 발생 • Transistor switch가 닫힘 • Write 경우 • bit line전압: high for 1 & low for 0 • address line값 = 1: 전하(charge)를 커패시터로 이동 • Read경우 • address line 값 = 1: 커패시터에 저장된 전하값들이 bit line을 통해서 sense amplifier로 이동 • 이 값을 reference 값과 비교하여 저장된 값이 0 or 1인지 판별 • 커패스터 내의 전하들이 재충전 Switch Is “DRAM cell” Flip-Flop 장치?

  6. 반도체 주기억장치 • Static RAM(SRAM) • 전원이 공급되는 동안 데이터 값을 계속 유지함(no charges to leak) • 재충전(refresh) 회로가 필요 없음 • 디지털(flip-flop) 장치이고, 휘발성 • DRAM에 비해서 per-bit 회로가 복잡하고 면적이 더 큼 • DRAM에 비해서 빠름 • 캐쉬 기억장치로 많이 이용

  7. SRAM 동작 – “1”인 상태 • CMOS Transistor • n-type: T1, T2 • p-type: T3, T4 • B=“1” & Address line=“1” • C1 high, C2 low • T1 T4 off, T2 T3 on 1 1 on off 0 1 0 off on 0 1

  8. SRAM 동작 – “1”인 상태 • Address line=“0” • C1 high, C2 low값이 계속해서 유지됨 • T1 T4 off, T2 T3 on

  9. SRAM 동작 – “0”인 상태 • B=“0” & Address line=“1” • C1low, C2high • T1 T4 on, T2 T3 off 1 0 off on 1 0 1 on off 0 1

  10. SRAM 동작 • Address line:T5, T6 • Write 경우 • 데이터 값 B • 데이터 값’ B’ • Read경우 • 데이터 값 bit line B

  11. 차이점 DRAM SRAM 밀도(density) 높음 낮음 가격 높음 낮음 Refresh회로 필요 불필요 읽기/쓰기 속도 느림 빠름 용도 대용량 주기억장치 캐쉬 Dynamic RAM vs. Static RAM • 공통점: 휘발성 • 데이터 값을 유지하기 위해서는 전원공급을 계속해야 함

  12. Read Only Memory(ROM) • 비휘발성(non-volatile) • 비트값이 기억장치에서 유지되도록 전원을 공급할 필요가 없음 • ROM의 주요 사용분야 • 변경이 거의 일어나지 않는 부분들 • 예: 라이브러리 서브루틴 시스템 프로그램(운영체제, …)

  13. ROM 종류 • ROM • 제조과정에서 데이터들이 실제 선들의 접속을 통하여 칩 속에 내장 • 변경이 불가능 • Programmable ROM • 한번만 “전기적인 방법으로” 쓰는 것이 가능 • 쓰기 (프로그래밍)를 위해서 특수한 장치가 필요 • Erasable Programmable ROM(EPROM) • 쓰기 전에 자외선을 이용하여 모든 cell을 초기상태와 같도록 지움 • 반복적으로 지울 수 있음 (20분 정도 소요)

  14. ROM 종류 • Electrically Erasable PROM(EEPROM) • 전기적으로 삭제가 가능 • 쓰기 전에 그 이전의 내용을 지울 필요가 없음 • 주소 지정된 한 byte or 몇 bytes들만 갱신 • 쓰기 동작이 읽기 동작에 비해서 오래 걸림 (~수백 usec/byte) • EEPROM은 EPROM보다 비쌈; 밀도도 낮음 • Flash Memory • 전기적으로 삭제가 가능 (전체 기억장치가 ~수초 내에 삭제) • 칩 전체가 아닌 블록 단위의 삭제가 가능 • 밀도 높음 (EPROM과 같은 정도의 높은 밀도를 달성)

  15. Flash Memory • Two main technologies dominate the non-volatile flash memory market today. • NOR flash was first introduced by Intel in 1988. • NAND flash architecture was introduced by Toshiba in 1989. • NOR is typically used for code storage and execution. • NAND is mostly used for data storage.

  16. Flash Memory • Bit flipping • Bit flipping is that a bit is reversed. • If the bit was actually reversed, an error detection/correction algorithm must be applied. • Bit flipping is more common in NAND devices than in NOR. • Bad block handling • NAND devices(only) are shipped with bad blocks randomly scattered throughout them. • NAND devices requires initially scanning the media for bad blocks, and then mapping them all out so they are never used. • Life span/Endurance <source: M-Systems White Paper>

  17. Multi-Level Cell(MLC) NAND • MLC NAND allows a 2-bit representation on a single physical cell. • MLC NAND offers a breakthrough in cost structure, yet reliability and performance are problematic. <source: M-Systems White Paper>

  18. NOR vs. NAND <source: M-Systems White Paper>

  19. NOR vs. NAND <source: M-Systems White Paper>

  20. NOR vs. NAND <source: M-Systems White Paper>

  21. CPU & Main Memory Interface

  22. CPU & Main Memory Interface (Cont’d) • b<w이면, 주기억장치는 w/b개의 b-비트 전송 • 일부 CPU는 읽기와 쓰기 워드 크기가 <w일 수 있음 • 예: Intel 8088: m=20, w=16,s=b=8 • 8-,16-비트 값을 읽고/씀 • 메모리가 충분히 빠르거나 응답이 예측 가능하면, • COMPLETE 생략 가능 • 일부 시스템은 R과 W 신호를 분리해서, REQUEST 생략 가능

  23. Word 크기  Memory-addressable 크기 • Word크기의 데이터 저장시 • Little endian & Big endian 문제 발생 • Little endian : low-order byte of the number => lowest address • Big endian : high-order byte of the number => lowest address • Example: Byte3 Byte2 Byte1 Byte0 Base Address+0 Byte0 Base Address+1 Byte1 Base Address+2 Byte2 Base Address+3 Byte3

  24. Little-endian & Big-endian • If you read a BMP file on a machine using "Big Endian" integers • You must first reverse the byte order Adobe Photoshop -- Big Endian BMP (Windows and OS/2 Bitmaps) -- Little Endian GIF -- Little Endian IMG (GEM Raster) -- Big Endian JPEG -- Big Endian MacPaint -- Big Endian PCX (PC Paintbrush) -- Little Endian PostScript -- Not Applicable (text!) QTM (Quicktime Movies) -- Little Endian (on a Mac!) Microsoft RIFF (.WAV & .AVI) -- Both Microsoft RTF (Rich Text Format) -- Little Endian SGI (Silicon Graphics) -- Big Endian TGA (Targa) -- Little Endian TIFF -- Both, Endian identifier encoded into file

  25. Little-endian & Big-endian • Programming: Checking Endianess main() { unsigned int val; unsigned char *c; val = 0x11223344; c = (unsigned char *)&val; if ( *c == 0x11 ) printf(">> big endian\n"); else printf(">> little endian\n"); printf(": addr[0x%08x] = 0x%2x\n", c, *c); printf(": addr[0x%08x] = 0x%2x\n", c+1, *(c+1)); printf(": addr[0x%08x] = 0x%2x\n", c+2, *(c+2)); printf(": addr[0x%08x] = 0x%2x\n", c+3, *(c+3)); }

  26. Little-endian & Big-endian • Programming: Reversing the Byte-Order unsigned int reverse(unsigned int val) { unsigned char b0, b1, b2, b3; unsigned int rev; b0 = (val & 0x000000ff) >> 0; b1 = (val & 0x0000ff00) >> 8; b2 = (val & 0x00ff0000) >> 16; b3 = (val & 0xff000000) >> 24; rev = (b0 << 24) | (b1 << 16) | (b2 << 8) | (b3 << 0); return rev; }

  27. C P U T a p e C a c h e M a i n M e m o r y D i s k M e m o r y M e m o r y 메모리 계층 • 구성요소 • 접근형태 임의 임의 임의 직접 순차 • 용량, 64-1024+ 8KB-8MB 64MB-2GB 8GB 1TB • 바이트 • 지연시간.4-10ns .4-20ns 10-50ns 10ms 10ms-10s • (access time) • 블록 크기1 word 16 words 16 words 4KB 4KB • 대역폭System System 10-4000 50MB/s 1MB/s • clock Clock MB/s • Rate rate-80MB/s • 비용/MB High $10 $.25 $0.002 $0.01 Some Typical Values:† †As of 2003-4. They go out of date immediately.

  28. 메모리 계층상의 데이터 접근 순서

  29. 칩 논리 – 메모리 셀 • 구현기술과 무관하게 모든 RAM 메모리 셀은 • Select, DataIn, DataOut, R/W을 포함해야 함 Select  DataIn DataOut R/W Illustrative Example: Gated-D Latch w/ Select, DataIn/Out, R/W

  30. 칩 논리 – The Gated S-R Latch • The Gated S-R Latch • Requires an enable input, EN • The S & R inputs control the state to which the latch will go when a HIGH level is applied to the EN input • The latch will not change until EN is HIGH • S=1/R=0 (Set), S=0/R=1 (Reset), S=0/R=0 (hold) Active-Low S’-R’ Latch

  31. 칩 논리 – The Gated D Latch • The Gated D Latch has • Only one input (called D) in addition to EN • When the D input is HIGH & the EN input is HIGH, the latch will set • When the D input is LOW & the EN input is HIGH, the latch will reset • “The output Q follows the input D when EN is HIGH”

  32. 1x8 1D 메모리 셀 배열(w/ 8-bit 레지스터) • 전체 레지스터가 하나의 select 선으로 선택됨 • 하나의 R/W 선을 이용

  33. 4x8 2D 메모리 셀 배열 2-비트 주소 R/W는 모두 공통 양방향 8-비트 버퍼된 데이터 버스

  34. 1Mx8 2D 메모리 셀 배열 • Decoder Size? • 20 x 220 decoder • 많은 출력을 갖는 decoder를 구현하기 힘듬 • 대안은 없는가?

  35. ~사각형 배열은 IC 설계에 적합하다 행과 열을 분리해서 선택하면 65536개의 회로 요소가 아니라 256x2=512개의 회로 요소 사용! CS, Chip Select는 배열의 칩을 개별적으로 선택할 수 있도록 함 이 칩은 전원과 접지를 포함해서 핀 수가 21이므로 22핀 패키지에 들어간다 64Kx1 메모리(SRAM) 셀 배열 • 8x256 Decoder & 256x1 Mux

  36. 앞의 것과는 1개의 256-1 멀티플렉서가 아니라 4개의 64-1 멀티플렉서가 있다는 것을 제외하면 거의 차이가 없음 칩에는 전원과 접지를 포함해서 24 핀이 필요 패키지 크기와 핀 개수가 칩 비용을 좌우 16Kx4 메모리(SRAM) 셀 배열 • 8x256 Decoder & 64x1 Mux

  37. DRAM 칩 • Refresh Overhead • Capacitor가 읽혀지지 않아서 2 or 100ms마다 refresh되지 않으면, 그 값은 0으로 변경됨 • 그 값을 유지 하기 위해서, 수 ms마다 refresh를 해야 함 • Refresh: 주기적으로 한 행 전체 값을 읽고 refresh (매우 심각)

  38. DRAM 칩 • 핀 수 감소 • 행 주소와 열 주소를 같은 핀을 통하여 순차적으로 전송 • 이를 Time-multiplexing -> 핀수를 절반으로 줄임 • 예: 1MB x 1 DRAM 의 address pins수를 20개에서 10개로 줄임 • 대신 2개의 신호가 추가(현재 address line에 행 /열 주소가 valid 함) • RAS: Row Address Strobe • CAS: Column Address Strobe

  39. DRAM 칩 • DRAM 칩구조 주소는 주소 버스에 RAS와 CAS를 행과 열 스트로브로 이용해서 시분할됨 핀 수: 주소 멀티플렉싱을 하지 않으면: 전원과 접지 포함 27 핀 주소 멀티플렉싱 사용: 전원과 접지 포함 17 핀

  40. DRAM 칩 전형적인 DRAM 읽기동작 전형적인 DRAM 쓰기 동작 Data hold from RAS.

  41. 반도체 주기억장치 • Example: 16Mbit(4Mx4) DRAM 구성 RAS: Row Address Strobe CAS: Column Address Strobe Refresh Counter: Row 값을 증가시키면서 재충전 (충전 작업시 DRAM 칩 사용불가)

  42. 칩 패키징(Packaging) • 8-Mbit EPROM • Address pins: A0~A19 (1M) • Data pins: D0~D7 (8-bit) • Vcc: 전원공급, Vss: 접지 • CE: Chip Enable • Vpp: 전원 pin (write시만 공급) • Data pins: 출력만 가능

  43. 칩 패키징(Packaging) • 16-Mbit DRAM • Data lines: D0~D3 (4-bit) • Address lines: A0~A10 (211x211 = 4M) • RAS, CAS pins • Vcc: 전원공급, Vss: 접지 • CE: Chip Enable • OE: Output Enable • WE: Write Enable • NC: no connection

  44. 모듈 조직 • 256K x 8bit Word • 18bit address lines가 필요 • 9bit row address와 9bit column address 각각이, • 8개의 256K x 1bit 칩에 연결 • 각 칩은 1bit 입출력 선

  45. 모듈 조직 • 1M x 8bit Word • 20bit address lines가 필요 • 9bit row address와 9bit column address 각각이, • 4x8개의 256K x 1bit 칩에 연결 • 상위 2bits는 • 그룹 선택 논리 모듈로 입력되어, 네 개의 그룹 중 하나를 선택 • 각 칩은 1bit • 입출력 선을 가짐

  46. 오류 정정(Error Correction) • 하드 결함(Hard Failure) • 영구적인 물리적인 결함임. • 0 or 1 값으로 고정 or 0과 1사이의 값을 가짐 • 소프트 오류(Soft Error) • 기억장치의 내용이 일시적으로 변경되는 오류 최근 대부분의 기억장치들은 하드 결함 or 소프트 오류를 검출(detect)하고 정정(correct)하기 위한 논리회로를 포함

  47. 오류 정정 코드(Error Correction Code) • 한 word 내에서 detect & correct되는 오류 bits 수에 따라서 결정 • 실제 word 크기 = 저장될 데이터 bits(크기 M) + 검사 bits(크기 K) • Word가 도착 했을 때, 오류-정정 코드 동작: • 오류 검출되지 않음: 인출된 데이터를 그대로 내보냄 • 오류가 검출되었으며, 정정이 가능함: 데이터 bits + 오류 정정 bits들이 corrector의 입력으로 들어와서, 정정된 M bits가 생성 • 오류가 검출되었으며, 정정이 불가능함: Error signal을 통해 상태보고 Compare의 결과값: Syndrome word

  48. 1-bit 오류 정정 가능. Hamming(SEC) 코드 • Single-Error-Correction(SEC) 코드 • Example: 4-bit word(M=4)에 대한 SEC Hamming 코드 내부 구획: 네개의 데이터 비트를 지정 나머지 구획: Parity bits로 채움 각 원내에 존재하는 “1”의 개수가 짝수가 되게 유지 (Even Parity)

  49. Hamming(SEC) 코드 • 데이터 M bits와 검사 K bits 관계 • M bits 데이터에 대해서 single error를 correction하려면 적어도 K bits의 부가적인 code가 존재해야 함 • Example: 8개의 데이터 bits를 가진 단어를 위한 최소 K 값은? • K=3: 23 – 1 < 8 + 3 • K=4: 24 – 1 > 8 + 3 2K – 1  M + K

  50. Bit Position 12 11 10 9 8 7 6 5 4 3 2 1 Position Number 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 검사 bit C8 C4 C2 C1 Hamming(SEC) 코드 • 데이터 bits & 검사 bits의 배치도 (M=8, K=4인 경우) 데이터 bit D8 D7 D6 D5 D4 D3 D2 D1 C1 = D1  D2  D4  D5  D7 C2 = D1  D3  D4  D6  D7 C4 = D2  D3  D4  D8 C8 = D5  D6  D7  D8

More Related