'시스템 소프트웨어 특강' 이라는 수업에서 발표하게된 FTL 관련 특허 자료이다.
여기서의 용어 선택은 순전히 내가 편한 대로 적은 것이기 때문에, 알아서 이해하기 바란다.

ABSTRACT

flash memory cell 의 wear leveling 시스템과 방법은 섹터가 받아들이기 힘든(unacceptable) level 에 있는 메모리 cell 인지 아닌지 결정하여 플래시 메모리의 섹터에 erase operation 을 수행하기 위해 시간을 필요로 한다.
플래시 메모리 array 의 섹터를 지우기 위해서 실제 요청되는 시간은 허용할 수 있는 최악의 하락(degradation) 의 상태 unit 섹터를 지우기 위해 필요한 reference erasing time 과 비교되어진다.
만일 실제 섹터가 지워지는 시간이 reference 지워지는 시간을 초과한다면, logical address 는 다른 섹터의 physical address 로 다시 매핑되는 섹터로 대응된다. 그 반면에 실제 지워지는 시간이 reference 지워지는 시간보다 짧거나 같으면, 콘트롤러는 unit 섹터를 계속 사용한다.

BACKGROUND OF THE INVENTION

이 발명은 EEPROM wear leveling 를 위한 시스템과 방법에 대해 이야기한다.

일반적으로 컴퓨터에서는 하드 디스크가 오랫동안 기억장치로 사용되어져 왔다. 그러나, 하드 디스크 장치는 무겁고, 부피가 크고, 물리적인 충격에 약했다. 그리하여, 노트북과 같은 이동성 시스템에 하드 디스크를 사용하는 것은 걱정이 많았다.
최근에 flash 메모리로서 알려진 EEPROM 의 사용은 좋은 내구성과 큰 저장공간을 가짐으로서, 좀더 일반화 되었다.
어떤 프로그램에서 플래시 메모리는 전기 기계의 하드 디스크를 대신한다.
플래시 메모리는 unit memory cell 을 대다수 포함하고 있으며, 각각 하나 또는 그 이상의 MOS 트랜지스터를 가지고 있다. 각 트랜지스터는 2개의 게이트를 가지고 있는데, 각각 floating gate 와 control gate 가 그것이다. floating gate 는 일반적으로 산화물 필름으로 덮혀있고, 기판과 control gate 사이에 위치한다. 트랜지스터는 주입하든지 또는 지우는 전기적으로 floating gate 에 충전함으로서, 2 개의 논리적인 상태로 스위치할 수 있다.
이것은 상대적은 높은 전압을 control gate 와 기판 사이에 강한 전기장을 만들기 위해서 control gate 에 적용할 때, 전자는 기판에서 floating gate 로 이동한다. 만일 control gate 에 전기 공급이 중단되면, floating gate 의 전기 충전은 산화 필름 때문에 floating gate 에서 외부로 달아나지 못한다.
그래서 데이터는 저장된다.
좀더 시간적인 데이터를 플래시 메모리 cell 로 write 하고 그리고 erase 하면, 메모리 cell 의 좀더 퇴화된(degrade) 트랜지스터는 높은 전압을 가해야 할 것이다. 많은 수의 데이터 저장과 삭제를 수행한 후에, 데이터 저장기능의 실행이 실패하게 된다.

플래시 메모리와 EEPROM 의 한가지 다른 점은 플래시 메모리가 블럭 단위로 데이터를 지운다는 것이다. 플래시 메모리 cell array 는 대다수의 unit 섹터를 포함한다. 각 unit 섹터는 약 100 바이트의 데이터 저장 공간을 가진다. 데이터를 쓸 때, unit 섹터의 메모리 cell 의 일부분만 사용이 가능하다.
그 반면에 데이터를 지울 때는, 전체의 unit 섹터가 지워진다. unit 섹터의 특별한 메모리 cell 에 저장된 데이터에 개의치 않고, 데이터는 unit 섹터에 의해 지워진다.

플래시 메모리 cell 은 데이터를 쓰고 지우는 과정 중에 퇴화된다. 메모리 cell 은 만일 데이터가 write 되어지기 전에 섹터가 사용되고 있을 수도 있기 때문에 이것을 결정하기 위해 반드시 체크를 해야 한다. 만일 섹터가 너무 퇴화 되었다면, 데이터는 적게 퇴화된 다른 섹터에 저장되어 진다.
이런 과정을 wear leveling 이라 부른다.

그림 1의 블럭 다이어그램은 background art flash memory 의 콘트롤러와 메모리 cell 을 보여주고 있다. 메모리 cell(30) 은 대다수의 unit 섹터와 섹터 정보 테이블로 구성되어 있다. unit 섹터는 데이터를 저장하고, 섹터 정보 테이블은 각 unit 섹터의 정보와 physical 주소에 상응하는 logical 주소 그리고 각 섹터가 지워질 때의 시간의 숫자를 저장한다.
콘트롤러(20) 의 주소 변환기(21) 은 host 10 (일반적으로 microprocessor) 에서 만들어진 logical 주소를 상응하는 physical 주소로 그리고 나서, 상응하는 섹터에 데이터를 읽거나 쓴다.
콘트롤러(20) 은 메모리 cell 30 의 데이터 write/read 오퍼레이션을 콘트롤하고, 주기적으로 unit 섹터가 너무 퇴화되었을 때, 메모리 cell 을 재매핑 함으로서 logical 주소와 physical 주소의 사이의 관계성을 다시 정렬한다.
섹터 지워지는 시간의 숫자를 비교하는 비교기(22)는 콘트롤러(20) 의 다른 요소이다. 비교기(22) 는 값을 가지며, 테스팅을 통해서 얻는다. 이 값은 지우는 시간의 초기 reference 숫자를 표현한다.
이 테스트는 cell 이 너무 퇴화되기 전에 unit 메모리 cell 의 조작상의 특징의 기반으로 데이터의 읽기나 쓰기를 최대한 몇 번까지 수행할 수 있는지를 정하기 위해서 실행된다.
각 unit 섹터의 지우는 시간의 reference 숫자와 실제 시간의 숫자를 비교하는 비교기(22) 는 메모리 cell(30) 의 섹터 정보 테이블에 저장되어 있는 정보를 사용하여 지운다. 만일 두 개의 숫자가 동일한 섹터라면, 퇴화된 cell 은 저장 데이터를 사용하지 못하게 하기 위해 메모리 cell 은 다시 매핑된다.

그림 2 는 background art memory cell 의 unit 섹터를 보여주고 있다. unit 섹터는 오버헤드 영역과 유저 영역으로 나뉘어진다. 유저 영역은 simple 데이터 저장 공간(32) 이고, 오버헤드 영역은 잡다한 정보 영역(33) 과 섹터의 지워지는 시간의 숫자를 저장하기 위한 erasing tracking 영역(34) 로 되어있다.
잡다한 정보 저장영역(33)은 섹터에 대한 다양한 정보, physical 주소, 유효 비트와 dirty bit 를 포함한다.
만일 플래시 메모리의 섹터가 512 바이트의 데이터 저장 공간을 가진다면, 플래시 메모리의 full 데이터 저장 공간은 2 기가 바이트가 된다.
unit 섹터는 반드시 2 기가 바이트가 넘는 데이터를 수용할 수 있다. 이 것은 플래시 메모리 cell 의 각 섹터가 반드시 오버헤드 영역에 track(흔적) 데이터를 가지기 때문이다. 그러므로 어떤 주어진 플래시 메모리의 용량을 위해, 플래시 메모리의 오버헤드 영역은 디바이스의 데이터 저장 용량 요구에서 증가된다. 이 추가된 데이터 저장 요구의 중요한 부분은 각 섹터가 지워지는 시간의 숫자를 track(흔적) 남기기 위해 오버헤드 영역을 사용한다.

제조공정 중에 에러가 발생할 수 있기 때문에, unit 메모리 cell 은 한결같은 특징을 가지기위해 실패할지도 모른다. 이런 이유로 특별한 메모리 cell 은 데이터가 지워지는 동작의 같은 숫자를 다른 메모리 cell 보다 빠르게 퇴화 시킬지도 모른다. 이 경우에 섹터의 부분은 퇴화될지도 모른다. 그리고 데이터 저장이 실패할지도 모른다. 비록 unit 섹터의 지워지는 시간의 숫자가 테스트에 의해서 얻어진 지워지는 시간의 reference 숫자는 도달하지 못한다. 결과로서 전체 섹터의 데이터를 저장하는 용량의 크기는 신뢰성이 없다.

SUMMARY OF THE INVENTION

현재 특허의 목적은 background art 의 하나 또는 그 이상의 문제를 충분히 제거하는 wear leveling 시스템과 방법을 제공하는 데 있다.
이 특허의 다른 목적은 플래시 메모리 cell 의 unit 섹터의 퇴화 단계를 체크함으로서 높은 신뢰성을 제공하는 데 있다.
이 특허의 다른 목적은 unit 섹터의 데이터를 지우는 시간을 기반으로하는 wear leveling 방법을 제공하는 데 있다. wear leveling 방법을 구체화한 특허는 플래시 메모리에 섹터 의 지우는 동작을 완료하기 위해 필요한 시간을 발견하는 것의 단계를 포함한다. 그리고 발견된 지우는 시간 상에 섹터가 계속 사용하고 있는 것인지 아닌지를 결정하는 단계를 포함한다. 다른 구체적인 특허에서 발견된 지우는 시간은 아마도 섹터의 wear 상태를 결정하기 위해서 미리 결정되는 시간과 비교할 지도 모른다.
만일 발견된 지우는 시간이 섹터가 데이터를 저장하기 위해 더이상 사용할 수 없게하기 위해 미리 결정된 reference 지우는 시간을 초과했다면, 플래시 메모리 cell 의 wear leveling 을 위한 또다른 구체적인 특허 방법에서 섹터의 모든 메모리 cell 로 부터 데이터를 지우기 위해 요구되어지는 시간의 양을 발견하고, 메모리 cell 은 다시 매핑된다.

플래시 메모리 cell 의 구체적인 특허의 wear leveling system 에서, 탐지자는 지워지는 플래시 메모리 cell 의 섹터 모든 메모리 cell 을 위한 요구되는 시간의 양을 발견하기 위해서 설정된다. 그리고 비교기는 reference 지워지는 시간과 발견된 지워지는 시간을 비교하여 설정된다.

시스템 구체적인 특허는 또한 unit 섹터안에 데이터를 저장하는 것을 막기 위해서 플래시 메모리 cell 은 다시 매핑된다. unit 섹터는 지나친 숫자의 쓰기와 지우기 동작 때문에 퇴화된다. 추가적인 장점은 특허의 특징과 목적이 서술의 부분이 앞에 설정될 것이라는 것이다. 서술은 따라가고 부분은 다음 또는 발명의 습관으로 부터 배우는 art 검사의 보통의 기술을 가지고 있다.
특허의 목적과 장점은 덧붙이는 cliam(주장)에서 특히 지적함으로서 실감하고 달성할 수 있을 것이다.

그림에 대한 간단한 설명들이다.
그림 1 의 블럭 다이어 그램은 background art 플래시 메모리 cell 을 보여주고 있다.
그림 2 는 그림 1 의 background art 플래시 메모리 cell 의 unit 섹터를 보여준다.
그림 3 은 현재 특허에 의한 플래시 메모리 cell 을 보여주고 있다.
그림 4 는 그림 3 의 플래시 메모리 cell 의 unit 섹터를 보여준다.

그림 3 은 현재 특허의 구체적인 플래시 메모리 cell 의 메모리 cell 과 콘트롤러를 보여주고 있다. 메모리 cell(130) 은 데이터를 쓰고 저장하고, 각 unit 섹터를 위한 정보를 섹터 정보 테이블을 저장하는 대다수의 unit 섹터로 구성되어 있다. 예를 들면, physical 주소는 logical 주소에 상응한다.
콘트롤러(120)의 주소 변환기(121)는 host(110)에서 만든 logical 주소를 physical 주소로 변환한다. 콘트롤러는 저장된 데이터를 읽거나, 섹터에 상응하는 관련된 physical 주소에 데이터를 쓴다.
콘트롤러(120)은 메모리 cell 에 데이터를 쓰거나 읽는 동작을 콘트롤 하고, 필요에 의해 메모리 cell 을 재 매핑함으로서 logical 주소와 physical 주소 사이의 관계성을 재 정렬한다.
콘트롤러(120) 의 다른 요소는 지우는 시간의 탐지기(122)이다. 탐지기(122) 는 지워지는 메모리 cell(130) 의 unit 섹터에 데이터를 저장하기 위해 필요한 시간의 양을 발견한다.
플래시 메모리 cell 의 데이터 지우는 시간은 메모리 cell 의 퇴화의 단계에 비례한다.
지우는 시간의 비교기(123)는 reference 값을 가지고 있고, 테스트에 의해 얻는다. 메모리 cell 이 지나치게 퇴화되기 전의 허용가능한 가장 큰 지워지는 시간을 나타내는 테스트이다.
테스트는 unit 메모리 cell 의 특징의 기반에서 허용가능한 가장 큰 데이터 지우는 시간을 결정하기 위해 실행된다.
비교기(123) 는 지우는 시간 탐지기(122)에 의해서 발견되는 실제 지워지는 시간과 reference 지워지는 시간을 비교하여 설정된다.
만일 섹터의 메모리 cell 이 실제로 지워지는 시간이 reference 시간보다 길다면, 메모리 cell(130) 은 logical 주소가 다른 unit 섹터에 다시할당받기 위해서 다시 매핑한다. 반면에 만일 섹터의 메모리 cell 의 실제 지워지는 시간이 reference 시간보다 짧거나 같다면, 콘트롤러는 섹터의 메모리 cell 에 데이터를 읽거나 쓰는 것을 계속한다.

unit 섹터의 데이터 지워지는 시간이 섹터의 모든 cell 을 위한 지우는 동작을 수행하기 위해서 요구된다. (섹터의 모든 cell 이 동시에 지워진다)
그러므로해서, 만일 섹터의 특별한 메모리 cell 의 데이터가 지워지는 시간이 섹터의 다른 cell 보다 길다면, 전체 unit 섹터의 데이터가 지워지는 시간은 logical 주소를 새로운 섹터에 재 매핑하는 데, 콘트롤러를 트리거(유인,유발)하는데 충분히 길 것이다.
만일, unit 섹터의 데이터 지워지는 시간이 테스트에 의해서 얻은 제한을 넘어선다면, 섹터는 더 이상 신뢰할 수 없다.
그림 4 는 현재 특허에 의해서 플래시 메모리 cell 의 unit 섹터를 보여주고 있다. 그림 2 에서 보여주는 background art unit 섹터로부터 다른 것은 cell 이 지워지는 시간의 숫자를 저장하기 위한 영역인 오버헤드 영역이 없다는 것이다.
현재 특허의 wear leveling 시스템에서 wear leveling 이 지우는 동작의 숫자에 의존적이지 않기 때문에 데이터가 지워지는 동작의 숫자를 저장하는 것은 필요하지 않다. 현재 특허의 구체적인 플래시 메모리 디바이스 때문에, 오버헤드 저장 영역은 많이 요구되지 않는다. 특허의 디바이스 구체적인 것은 background art 디바이스보다 비슷한 크기가 저장될 수 있다.

background art wear leveling 시스템은 전체 unit 섹터의 데이터가 지워지는 시간의 숫자를 기반으로 한다. 각 메모리 cell 의 퇴화의 단계는 관심이 없다. 그래서 퇴화의 판단은 메모리 cell 의 현재 상태로 기반으로 하지 않는다. 반면에 현 특허의 wear leveling 시스템은 퇴화의 기준을 메모리 cell 의 현재 실제로 발견된 상태와 최악의 경우 reference 숫자를 비교한 실질적인 상태를 기반으로 한다. 그것에 의해서 높은 신뢰성이 제공된다.

앞서 말한 구체화는 단지 대표적이고, 현 특허의 제한점으로서 해석되지 않는다. 현재 가르침은 다른 타입의 기계에 쉽게 적용할 수 있다.
많은 대안들, 변경 그리고 변화는 art 의 숙련된 것들과 식별할 수 있을 것이다. claim(주장) 에서 뜻이 추가된 기능 조항은 구조를 커버하기 위해 의도되어졌다.
구조상의 동등함 뿐만아니라 동등한 구조도 그리고 기능을 자세히 기술함을 실행함으로서 여기에 묘사되어진다.
예를 들면, 못과 나사는 구조적인 동등함이 아닐 수 있다. 못은 나무 부분을 보호하기 위해서 원통모양 표면을 쓰지만, 이에 반해 나사는 나무 부분을 조이는 환경에서 나선형 표면을 쓴다. 못과 나사는 아마도 동등한 구조를 가지고 있다.

우리는 무엇을 요구하는가 :

  1. wear leveling 플래시 메모리 cell 의 방법은 다음의 단계로 구성된다.메모리 cell 의 섹터 상에서 지우는 동작이 완료하기 위해서 요구되는 시간을 발견한다. 그리고 지우는 시간의 발견된 기반에서 섹터를 계속 사용할 것인지 아닌지를 결정한다.
  2. 결정하는 단계는 구성되어 있다. 발견된 지우는 시간과 reference 지우는 시간을 비교한다.
  3. 만일 발견된 지우는 시간이 reference 지우는 시간을 초과한다면, 섹터는 사용하지 않는 것으로 결정한다.
  4. 만일 발견된 지우는 시간이 reference 지우는 시간보다 짧거나 같다면, 섹터는 계속 사용되어 진다.
  5. 만일 발견된 지우는 시간이 reference 지우는 시간을 초과한다면, 메모리 cell 을 재 매핑하는 단계를 포함한다.
  6. 재 매핑하는 단계는 logical 주소를 상응하는 다른 섹터의 physical 주소에 할당한다.
  7. 섹터의 모든 메모리 cell 을 지우기 위하여 요구되어지는 시간을 발견하는 방법이 포함된다.
  8. 탐지자(detector)는 지워지는 플래시 메모리 cell 의 섹터 메모리 cell 이 요구하는 시간의 양을 발견하기위해 설정한다. 비교기는 발견한 지워지는 시간이 reference 지워지는 시간과 비교해서 설정된다.
  9. reference 지워지는 시간은 지워지는 섹터의 모든 메모리 cell 을 위한 요구되어 지는 시간이다. 또한 최악의 허용가능한 퇴화의 상태 이하이다.
  10. 주소 변환기는 logical 주소를 메모리 cell 의 physical 주소로 변환하도록 설정된다.
  11. 주소 변환기는 또한 첫번째 섹터의 발견된 지워지는 시간이 reference 지워지는 시간보다 길때, logical 주소를 상응하는 physical 주소의 첫번째 섹터에서 두번째 섹터로 다시 매핑하도록 설정되어 진다.
  12. 섹터 지워지는 시간이 reference 지워지는 시간을 초과했을 때, 섹터는 더이상 데이터가 저장되지 않는다.
  13. 플래시 메모리 cell 의 wear leveling 방법은 최소 하나의 섹터를 가지고 있다. 플래시 메모리 cell 의 섹터의 발견된 데이터 지워지는 시간. 그리고 섹터의 wear 상태를 체크하기 위해서 발견된 데이터 지워지는 시간과 미리 결정된 reference 지워지는 시간을 비교한다.
  14. host 가 만든 logical 주소를 메모리 cell 의 physical 주소로 변환한다.
  15. 발견된 지워지는 시간이 reference 지워지는 시간보다 길때, logical 주소를 사용가능한 새로운 physical 주소로 다시 매핑한다.
  16. reference 지워지는 시간은 섹터의 모든 메모리 cell 이 지워지기 위해서 필요한 시간이다. 또한 최악의 허용가능한 퇴화시간보다는 이하다.
  17. 만일 발견된 지워지는 시간이 reference 지워지는 시간을 초과한다면, 메모리 cell 은 다시 매핑된다.
  18. 메모리 cell 의 섹터의 메모리 cell 로 부터 데이터를 지우기 위해 발견하는 시간이 요구되어 진다. 그리고 만일 발견된 지워지는 시간이 미리 결정된 지워지는 시간을 초과한다면, 그 섹터는 더이상 데이터를 저장하는 용도로 사용하지 않고, 메모리 cell 은 다시 매핑된다.
  19. logical 주소는 상응하는 physical 주소에서 사용 가능한 섹터의 새로운 physical 주소로 다시 할당된다.
  20. 섹터의 모든 메모리 cell 은 실질적으로 동시에 지워진다.

새롭게 알게된 것들

섹터 정보 테이블은 하나의 블럭마다 존재한다. 또한 여기에는 블럭이 몇 번 지워졌는지 횟수를 저장하고 있다.
하나의 블럭은 여러개의 섹터로 구성된다.
여러개의 unit 섹터는 overhead area 와 user`s area 로 나뉘어 지는데, 각 해당 섹터가 몇 번 지워졌는지 횟수를 저장하고 있다.

  • computer/rtcclab/flash_memory_wear_leveling_system_and_method.txt
  • Last modified: 3 years ago
  • by likewind