임베디드/[ Nandflash ]

[ Nandflash ] 10. Nandflash_F59L2G81A의 Operation Diagram

kim.svadoz 2020. 9. 4. 17:04
반응형

===Operation Diagram===:ballot_box_with_check:

크게 CLE로 동작되는 커맨드 사이클, ALE로 동작되는 어드레스 사이클, 데이터사이클(WE, RE)로 나뉘어진다.

  • 보통 낸드플래시의 작업 순서는 삭제 - 쓰기 - 읽기 이다.

> ERASE

image-20200818154115162

  1. CLE로 전체 사이클을 시작하고 ERASE의 의미로 60h를 때려준다
  2. 그 다음은 ALE 사이클이다. 이번에는 Column Address 없이 Row Address만 적어준다. 그 이유는 블럭단위로 ERASE가 일어나기 때문이다.
  3. 커맨드 버스 사이클이 CLE 진행되어 지우기 2nd 커맨드가 기록된다.
  4. 기둘기둘.....(tBERS)
  5. R/B신호를 GPIO 포트 단자로 감시하다가 종료되는걸 캐치
  6. 상태비트 체크!

블록 기반 지우기 작업은 Erase Setup 명령 (60h)에 의해 시작되고 3주기 행 주소가 뒤 따릅니다. 여기서 Plane 주소와 Block 주소 만 유효하고 페이지 주소는 무시됩니다.

행 주소 다음의 지우기 확인 명령 (D0h)은 내부 지우기 프로세스를 시작합니다.

2 단계 명령 시퀀스는 외부 노이즈에 의해 메모리 내용이 실수로 변경되는 것을 방지하도록 설계되었습니다.

Erase Confirm 명령 입력 후 WE의 상승 에지에서 내부 제어 로직은 삭제 및 삭제 확인을 처리합니다.

지우기 작업이 완료되면 호스트 컨트롤러는 상태 비트 (I / O0)를 확인하여 지우기 작업이 성공적으로 완료되었는지 확인할 수 있습니다.

다음 그림은 블록 지우기 시퀀스를 보여 주며, 주소 입력 (선택된 블록의 첫 번째 페이지 주소)은 명령 60h와 D0h 사이에 배치됩니다.

tBERASE 삭제 시간 후 R / B는 준비 상태로 어설 션을 해제합니다.

읽기 상태 명령 (70h)은 삭제 작업의 실행 상태를 확인하기 위해 D0h 직후에 실행할 수 있습니다.

> PROGRAM(Write)

image-20200818154654251

  1. READ와 똑같이 CLE로 전체 사이클을 시작하고, 기록 커맨드로 80h를 때린다.
  2. CLE가 Low가 되고 ALE가 High가 되면서 Column AddressLow Address를 차례로 기록한다.
  3. ALE를 Low해주고 바로 쓸 데이터를 WE의 rising edge에 맞추어 올려서 보내준다.
  4. 쓰기의 두번 째 command인 10h을 때려주면, 그 전에 쓰기 큐에 넣어놨던 데이터들이 타겟 어드레스에 쭉 써진다.
  5. 물론 이 때도 BUSY 상태가 된다. 읽기 동작에 비해서 긴 wait가 필요하다. 이걸 tPROG라고 한다.
  6. 그리고 마이크로프로세서가 Busy상태가 종료한 것을 알아차리면 Read Status(70h)로 프로그램이 정상적으로 수행되었는지 확인한다.
  7. 읽어낸 상태바이트가 0이면 성공, 1이면 실패를 의미한다.
  • 1st 커맨드 사이클(CLE) => 어드레스 사이클(ALE) => 데이터 사이클 => 2nd 커맨드 사이클(CLE) => 대기(BUSY) => 3rd 커맨드 사이클(CLE) => 상태비트 체크

이 장치는 페이지 단위를 기준으로 프로그래밍되며, 삭제 작업을 중단하지 않고 한 페이지에 연속적인 부분 페이지 프로그래밍을 엄격히 금지합니다.

블록 내 페이지 프로그램 작업의 주소 지정은 순차적이어야합니다.

전체 페이지 프로그램주기는 최대 2,112 바이트 (1,056 워드)의 데이터를 캐시 레지스터를 통해 데이터 레지스터에로드 할 수있는 직렬 데이터 입력주기와로드 된 데이터가 지정된 메모리에 프로그래밍되는 프로그래밍 기간으로 구성됩니다. 세포.

직렬 데이터 입력주기는 직렬 데이터 입력 명령 (80h)으로 시작하여 5주기 주소 입력 후 직렬 데이터로드가 이어집니다.

페이지에 프로그래밍되지 않을 바이트는로드 할 필요가 없습니다.

다음 데이터의 열 주소는 임의 데이터 입력 명령 (85h)에 따라 주소로 변경할 수 있습니다.

임의 데이터 입력 명령은 한 페이지에서 여러 번 반복 될 수 있습니다.

페이지 프로그램 확인 명령 (10h)은 프로그래밍 프로세스를 시작합니다.

데이터를 입력하지 않고 10h 만 작성하면 프로그래밍 프로세스가 시작되지 않습니다.

내부 쓰기 엔진은 해당 알고리즘을 자동으로 실행하고 프로그래밍 및 검증 타이밍을 제어하여 호스트 컨트롤러가 다른 작업을 수행 할 수 있도록합니다.

프로그램 프로세스가 시작되면 호스트 컨트롤러는 R / B 출력을 모니터링하거나 상태 읽기 명령을 사용하여 상태 비트 (I / O6)를 읽어 프로그램 사이클의 완료를 감지 할 수 있습니다.

프로그래밍 중에는 상태 읽기 및 재설정 명령 만 유효합니다.

페이지 프로그램 작업이 완료되면 호스트 컨트롤러는 상태 비트 (I / O0)를 확인하여 페이지 프로그램 작업이 성공적으로 완료되었는지 확인할 수 있습니다.

명령 레지스터는 다른 유효한 명령이 기록되지 않는 한 읽기 상태 모드로 유지됩니다.

페이지 프로그램 시퀀스는 다음 그림에 설명되어 있습니다. 여기서 열 주소, 페이지 주소 및 데이터 입력은 80h와 10h 사이에 있습니다.

tPROG 프로그램 시간 후 R / B는 준비 상태로 어설 션을 해제합니다.

상태 읽기 명령 (70h)은 10 시간 후 바로 실행할 수 있습니다.

> READ

image-20200818155350680

  1. WE 신호의 Rising Edge시간에 낸드 플래시 읽기 1st(00h) 커맨드가 시작... CLE가 On되어있을 때는 WE의 라이징 엣지에 걸리는 버스에 걸리는 Data를 command latch로 전달해준다.
  2. CLE가 Low가 되고 ALE가 High가 되면서 어드레스를 Column, Row의 순으로 팍팍 넣어준다. WE가 라이징 엣지일 때 낸드플래시에 ColumnRow 어드레스가 차례대로 기록될 것이다.
  3. 마지막으로 커맨드 버스 사이클 CLE가 High가 되고 읽기 2nd(30h) 커맨드가 똭 들어간다.
  4. 읽는다.. 이 때는 데이터가 대기 버퍼 큐에 준비가 되는 시간으로 보면 된다. 이 때 마이크로 프로세서는 낸드 플래시의 R/B 신호를 GPIO포트 단자로 계속 감시한다.
  5. Busy가 끝나면서 마이크로 프로세서는 RE의 Rising Edge에 맞춰 팍팍 읽어주면 된다.
  • 1st 커맨드 사이클(CLE) => 어드레스 사이클(ALE) => 2nd 커맨드 사이클(CLE) => 대기(BUSY) => 데이터 사이클(Address)

초기 장치 전원을 켜면 장치는 기본적으로 읽기 모드로 설정됩니다.

이 작업은 00h 명령, 5주기 주소 및 30h 명령을 작성하여 시작됩니다.

초기 전원을 켠 후 00h 명령은 명령 레지스터에 래치되었으므로 건너 뛸 수 있습니다.

한 페이지에있는 2,112Byte의 데이터는 다음을 통해 캐시 레지스터로 전송됩니다.
25us (tR) 이내의 데이터 레지스터.

호스트 컨트롤러는 R / B 출력을 확인하여이 데이터 전송 완료를 감지 할 수 있습니다.

선택한 페이지의 데이터가 캐시 레지스터에로드되면 RE를 지속적으로 펄싱하여 25ns주기 시간 내에 각 바이트를 읽을 수 있습니다.

RE 클럭 신호의 반복적 인 high-to-low 전환은 장치가 지정된 열 주소에서 시작하여 마지막 열 주소로 데이터를 출력하게합니다.

장치는 Random Data Output 명령을 사용하여 순차적 열 주소 대신 임의의 열 주소에 데이터를 출력 할 수 있습니다.

임의 데이터 출력 명령은 한 페이지에서 여러 번 실행할 수 있습니다.

전원을 켠 후 장치는 읽기 모드에 있으므로 읽기 작업을 시작하는 데 00h 명령주기가 필요하지 않습니다.

페이지 읽기 시퀀스는 다음 그림에 설명되어 있습니다. 여기서 열 주소, 페이지 주소는 명령 00h와 30h 사이에 있습니다.

tR 읽기 시간 후에 R / B는 준비 상태로 어설 션을 해제합니다. 상태 읽기 명령 (70h)은 30 시간 후에 바로 실행할 수 있습니다.

호스트 컨트롤러는 RE를 전환하여 지정된 열 주소와 연속 바이트로 시작하는 데이터에 액세스 할 수 있습니다.

> COPY BACK

image-20200818174552824

Copy-Back Program은 저장된 데이터에서 비트 오류가 감지되지 않았을 때 시간 소모적 인 데이터 재로드없이 메모리 셀에 저장된 데이터를 효율적으로 복사 할 수 있도록 설계되었습니다.

특히 블록의 일부가 업데이트되고 나머지 블록은 새로 할당 된 빈 블록에 복사되어야 할 때 이점이 분명합니다.

Copy-Back 작업은 Copy-Back 및 Copy-Back 프로그램을 대상 주소로 읽기를 순차적으로 실행하는 것입니다.

"35h"명령과 소스 주소를 사용하여 Copy-Back 작업을 읽기는 전체 2,112 바이트 데이터를 내부 버퍼로 이동합니다.

호스트 컨트롤러는 데이터 출력을 순차적으로 읽어 비트 오류를 감지 할 수 있습니다.

Copy-Back 프로그램은 Destination 주소와 함께 Page-Copy Data-Input 명령 (85h)을 실행하여 시작됩니다.

비트 오류를 수정하고 오류 전파를 방지하기 위해 데이터 수정이 필요한 경우 대상 주소 뒤에 데이터를 다시로드 할 수 있습니다.

다음 그림과 같이 데이터 수정을 여러 번 반복 할 수 있습니다.

실제 프로그래밍 작동은 프로그램 확인 명령 (10h)이 발행 될 때 시작됩니다.

프로그램 프로세스가 시작되면 상태 레지스터를 읽기 위해 상태 읽기 명령 (70h)을 입력 할 수 있습니다.

호스트 컨트롤러는 R / B 출력 또는 상태 레지스터의 상태 비트 (I / O6)를 모니터링하여 프로그램주기의 완료를 감지 할 수 있습니다.

Copy-Back 프로그램이 완료되면 상태 비트 (I / O0)를 확인할 수 있습니다.

명령 레지스터는 다른 유효한 명령이 기록 될 때까지 읽기 상태 모드로 유지됩니다.

> READ ID

image-20200818175017295

이 장치에는 명령 레지스터에 90h를 쓰고 00h 주소를 입력하여 시작되는 제품 식별 모드가 포함되어 있습니다.

4 개의 읽기 사이클은 제조업체 코드 (C8h)와 장치 코드 및 3rd, 4th, 5th 사이클 ID를 각각 순차적으로 출력합니다.
명령 레지스터는 추가 명령이 실행될 때까지 읽기 ID 모드로 유지됩니다.

> READ STATUS

장치의 상태 레지스터는 프로그램 또는 지우기 작업이 완료되었는지 여부와 작업이 성공적으로 완료되었는지 확인하는 데 사용됩니다.

70h / F1h 명령을 명령 레지스터에 쓴 후 읽기 사이클은 상태 레지스터의 내용을 CE 또는 RE의 하강 에지 중 마지막에 발생하는 I / O 핀에 출력합니다.

이 두 명령을 사용하면 R / B 핀이 공통 배선 된 경우에도 시스템이 여러 메모리 연결에서 각 장치의 진행 상황을 폴링 할 수 있습니다.

RE 또는 CE는 상태 변경을 위해 전환 할 필요가 없습니다.

명령 레지스터는 다른 명령이 실행되지 않는 한 읽기 상태 모드로 유지됩니다.

따라서 임의 읽기주기 동안 상태 레지스터를 읽으면 읽기주기를 시작하기 위해 읽기 명령 (00h)이 필요합니다.

image-20200819175857722

> Mask Out Initial Invalid Block(s)

초기 무효 블록은 신뢰성이 ESMT에 의해 보장되지 않는 하나 이상의 초기 무효 비트를 포함하는 블록으로 정의됩니다.

초기 무효 블록에 대한 정보를 초기 무효 블록 정보라고합니다.

초기 유효하지 않은 블록이있는 장치는 모든 유효한 블록이있는 장치와 품질 수준이 같고 AC 및 DC 특성이 동일합니다.

초기 유효하지 않은 블록 (들)은 선택 트랜지스터에 의해 비트 라인과 공통 소스 라인과 분리되어 있기 때문에 유효한 블록의 성능에 영향을 미치지 않습니다.

시스템 설계는 주소 매핑을 통해 초기 유효하지 않은 블록을 마스킹 할 수 있어야합니다.

00h 블록 주소에 배치 된 첫 번째 블록은 4bit / 512Byte ECC를 사용하여 최대 1K 프로그램 / 지우기 사이클까지 유효한 블록이됩니다.

> Reset

image-20200819181035655

이 장치는 명령 레지스터에 FFh를 기록하여 실행되는 재설정 기능을 제공합니다.

임의 읽기, 프로그램 또는 지우기 모드 동안 장치가 사용 중 상태에 있으면 재설정 작업이 이러한 작업을 중단합니다.

변경되는 메모리 셀의 내용은 데이터가 부분적으로 프로그래밍되거나 지워 지므로 더 이상 유효하지 않습니다.
명령 레지스터는 다음 명령을 기다리기 위해 지워지고 WP가 높으면 상태 레지스터가 값 C0h로 지워집니다.

장치가 이미 재설정 상태에있는 경우 명령 레지스터에서 새 재설정 명령을 수락합니다.

R / B 핀은 리셋 명령이 기록 된 후 tRST에 대해 로우로 변경됩니다. 다음 그림을 참조하십시오.

반응형