KR20110117134A - 호스트 요청을 매핑하는 시스템 및 방법 - Google Patents

호스트 요청을 매핑하는 시스템 및 방법 Download PDF

Info

Publication number
KR20110117134A
KR20110117134A KR1020117018191A KR20117018191A KR20110117134A KR 20110117134 A KR20110117134 A KR 20110117134A KR 1020117018191 A KR1020117018191 A KR 1020117018191A KR 20117018191 A KR20117018191 A KR 20117018191A KR 20110117134 A KR20110117134 A KR 20110117134A
Authority
KR
South Korea
Prior art keywords
host
data storage
request
address
mapped
Prior art date
Application number
KR1020117018191A
Other languages
English (en)
Inventor
도널드 레이 브라이언트-리치
Original Assignee
샌디스크 아이엘 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 아이엘 엘티디 filed Critical 샌디스크 아이엘 엘티디
Publication of KR20110117134A publication Critical patent/KR20110117134A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/206Memory mapped I/O

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)

Abstract

데이터를 읽기 위한 시스템 및 방법들이 개시된다. 특정 실시예에서, 데이터 저장 장치는 상기 데이터 저장 장치를 호스트에 연결하도록 되어 있는 호스트 인터페이스를 포함한다. 상기 호스트는 호스트 메모리 어드레스 공간에 의해 어드레스 가능한 메모리를 포함한다. 상기 데이터 저장 장치는 또한 상기 호스트 메모리 어드레스 공간과 독립적인 장치 어드레스 공간을 포함한다. 상기 장치 어드레스 공간은 제1 어드레스 영역 및 상기 제1 어드레스 영역과 구별되는 제2 어드레스 영역을 포함한다. 상기 데이터 저장 장치는 또한 비휘발성 메모리 어레이와, 상기 비휘발성 메모리 어레이에 연결되고 매핑된 장치에 또한 연결되는 제어기를 포함한다. 상기 제어기는 상기 장치 어드레스 공간의 상기 제1 어드레스 영역에 액세스하기 위한 상기 호스트로부터의 제1 요청에 응답하여 상기 비휘발성 메모리 어레이에서 메모리 액세스 동작을 수행하도록 되어 있다. 상기 제어기는 또한 상기 장치 어드레스 공간의 상기 제2 어드레스 영역에 액세스하기 위한 상기 호스트로부터의 제2 요청에 응답하여 상기 제2 요청을 상기 매핑된 장치로 매핑하도록 되어 있다.

Description

호스트 요청을 매핑하는 시스템 및 방법{SYSTEM AND METHOD OF HOST REQUEST MAPPING}
본 개시는 개괄적으로 호스트 메모리 액세스 요청들을 주변 장치 명령들로 매핑하는 것에 관한 것이다.
전력 사이클들 간에 데이터를 보유하는 USB 플래쉬 메모리 장치들(universal serial bus flash memory devices)이나 탈착가능한 저장 카드들(removable storage cards)과 같은 비휘발성 메모리 장치들은 데이터 및 소프트웨어 애플리케이션들의 휴대성을 증가시켜 왔다. 탈착가능한 메모리 카드에서 메모리 어레이와 스위치나 버튼과 같은 복수의 장치들이 호스트에 액세스 가능하다고 할 때, 그 메모리 카드는 메모리 어레이에 대해서는 대용량 저장 클래스(Mass Storage Class, MSC)를 구현한 것이고 스위치나 버튼에 대해서는 휴먼 인터페이스 장치(Human Interface Device, HID) 클래스를 구현한 것일 수 있다. 전형적으로 제품의 복수의 USB 장치들에 호스트 액세스를 가능하게 하는 것은 제품에 의해 사용되는 USB 엔드포인트(endpoint)들의 개수와 제품에서 버퍼들의 개수를 증가시킨다.
호스트 액세스 요청을 매핑하는 시스템 및 방법들이 개시된다. 상기 호스트 액세스 요청은 메모리 외의 장치로 매핑되는 메모리 어드레스에 해당하는 메모리 액세스 요청으로서 식별될 수 있다. 예를 들면, 상기 메모리 액세스 요청은 데이터 저장 장치 내의 스위치나 버스 제어기와 같은 주변 장치(peripheral device)로 매핑될 수 있거나, 또는 데이터 저장 장치의 외부에 있는 외부 장치로 매핑될 수 있다. USB(Universal Serial Bus) 구현예에서, 상기 매핑은 부가적인 USB 장치 클래스들을 구현함이 없이 상기 호스트가 상기 매핑된 장치(mapped device)들에 액세스하거나 제어하는 것을 가능하게 할 수 있다.
도 1은 호스트 액세스 요청을 매핑하는 시스템의 제1 특정 실시예의 블록도이다.
도 2는 호스트 액세스 요청을 매핑하는 시스템의 제2 특정 실시예의 블록도이다.
도 3은 호스트 액세스 요청을 매핑하는 시스템의 데이터 어드레스 공간을 예시하는 도면이다.
도 4는 호스트 액세스 요청을 외부 장치로 매핑하는 시스템의 특정 실시예를 예시하는 도면이다.
도 5는 호스트 액세스 요청을 매핑하는 방법의 제1 특정 실시예의 순서도이다.
도 6은 호스트 액세스 요청을 매핑하는 방법의 제2 특정 실시예의 순서도이다.
도 7은 호스트 액세스 요청을 매핑하는 방법의 제3 특정 실시예의 순서도이다.
도 1을 보면, 호스트 액세스 요청(host access request)을 매핑(map)하는 시스템의 특정 실시예가 도시되어 있고, 일반적으로 100으로 지정된다. 시스템(100)은 데이터 저장 장치(104)에 연결되는 호스트(102)를 포함한다. 데이터 저장 장치(104)는 제어기(controller)(122)와, 제1 어드레스 영역(132)과 제2 어드레스 영역(134)을 포함하는 장치 어드레스 공간(device address space)(130)을 포함한다. 제어기(122)는 비휘발성 메모리 어레이(non-volatile memory array)(124)와 같은 메모리 어레이에서 메모리 동작들을 시작함으로써 제1 어드레스 영역(132)에 액세스하기 위한 요청들에 응답하도록 구성되고, 메모리 액세스 요청들을 매핑된 장치(mapped device)(126)로 매핑함으로써 제2 어드레스 영역(134)에 액세스하기 위한 요청들에 응답하도록 구성된다. 제1 어드레스 영역(132)은 비휘발성 메모리 어레이(124)에서 어드레스 가능한(addressable) 메모리에 해당하지만, 제2 어드레스 영역(134)은 비휘발성 메모리 어레이(124)에서 어드레스 가능한 메모리에 해당하지 않을 수 있기 때문에, 장치 어드레스 공간(130)은 비휘발성 메모리 어레이(124)의 어드레스 가능한 양의 메모리를 초과하는 범위의 어드레스들을 포함할 수 있다.
특정 실시예에서, 호스트(102)는 호스트 메모리 어드레스 공간에 의해 어드레스 가능한 메모리(110)를 포함한다. 호스트(102)는 운영 체제(operating system) (162)를 가질 수 있다. 일부 실시예들에서, 호스트(102)는 또한 호스트 메모리 어드레스 공간에 적어도 하나의 파일(164)을 포함할 수 있다. 호스트(102)는 데이터 저장 장치(104)를 위한 하나 이상의 요청들(106)을 생성하도록 구성된다. 예를 들면, 요청(106)은 데이터 저장 장치(104)의 매핑된 장치(mapped device)(126)로 설정(setting)이나 값(value)을 송신할 수 있고, 또는 데이터 저장 장치(104)의 매핑된 장치(126)로부터 상태(status)나 값을 요청할 수 있다. 호스트(102)는 또한 매핑된 장치(126)에 의해 생성된 데이터를 포함하는 매핑된 장치 데이터(mapped device data)(108)와 같은 데이터를 데이터 저장 장치(104)로부터 수신하도록 구성된다.
데이터 저장 장치(104)는 호스트 인터페이스(host interface)(120), 제어기(122), 비휘발성 메모리 어레이(124) 및 매핑된 장치(126)를 포함한다. 호스트 인터페이스(120)는 데이터 저장 장치(104)를 호스트(102)에 연결하도록 되어 있다. 특정 실시예에서, 호스트 인터페이스(120)는 호스트(102)로부터 분리가능한 USB(universal serial bus) 인터페이스를 포함한다. 호스트 인터페이스(120)가 제어기와 별개인 것으로 도시되어 있지만, 다른 실시예들에서는 호스트 인터페이스(120)의 적어도 일부분이 제어기(122)의 컴포넌트이다.
특정 실시예에서, 비휘발성 메모리 어레이(124)는 플래쉬 메모리 어레이를 포함한다. 비휘발성 메모리 어레이(124)는 장치 어드레스 공간(130)의 제1 어드레스 영역(132)을 통해 어드레스 가능하다. 특정 실시예에서, 장치 어드레스 공간(130)은 호스트 메모리 어드레스 공간과 독립적이다. 장치 어드레스 공간(130)은 제1 어드레스 영역(132)과 제2 어드레스 영역(134)을 포함한다. 제1 어드레스 영역(132)은 데이터 저장과 회수(retrieval)를 위한 비휘발성 메모리 어레이(124)의 메모리 위치들로 매핑된다. 예를 들면, 호스트(102)로부터 수신된 제1 어드레스 영역(132)으로의 저장 요청은 제어기(122)에 의해 비휘발성 메모리 어레이(124)에서의 메모리 저장 동작으로 매핑된다. 제2 어드레스 영역(134)은 매핑된 장치(126)에 해당하고 제1 어드레스 영역(132)과는 구별된다. 예시된 바와 같이, 제2 어드레스 영역(134)은 비휘발성 메모리 어레이(124)의 사용가능한 메모리 섹터를 넘어서는 메모리 어드레스 영역을 포함한다. 본 명세서에서 사용된 바와 같이, 비휘발성 메모리 어레이(124)의 "사용가능한 메모리 섹터(usable memory sector)"는 사용자가 볼 수 있거나 사용자가 액세스 가능한 비휘발성 메모리 어레이(124)의 섹터로서, 예컨대 비휘발성 메모리 어레이(124)의 공개 영역(public area)의 섹터, 또는 인증(authentication)이나 권한부여(authorization) 절차 후에 사용자에게 액세스 가능한 비-공개 영역(non-public area)의 섹터와 같은 것이며, 이들은 예시적인 것이고 제한적이지 않은 예들이다. 특정 실시예에서, 제1 어드레스 영역(132)은 비휘발성 메모리 어레이(124)의 모든 사용가능한 메모리 섹터들(즉, 사용자가 볼 수 있거나 사용자가 액세스 가능한 메모리 섹터들)에 해당할 수 있고, 제2 어드레스 영역(134) 내의 어떠한 메모리 어드레스들도 메모리 어레이(124)의 사용가능한 위치에 해당하지 않을 수 있다. 또 다른 실시예에서, 비휘발성 메모리 어레이(124)의 적어도 하나의 사용가능한 섹터는 제2 어드레스 영역(134)을 통해 액세스 가능하지만, 제1 어드레스 영역(132)을 통해 액세스 가능하지는 않다.
특정 실시예에서, 제2 어드레스 영역(134)은 숨은 저장 영역(hidden storage area) 내의 메모리와 관련된다. 숨은 저장 영역은 사용자 데이터를 저장하는데 사용가능하지 않고 파일 시스템의 일부로서 호스트(102)에게 보이지 않는 비휘발성 메모리 어레이(124)의 일부분을 포함할 수 있다. 예를 들면, 숨은 저장 영역은 U3 숨은 영역, TrustedFlash™ 숨은 영역, TrustedFlash™ 보안 데이터 객체(Secure Data Object, SDO) 및 미국전기전자협회 IEEE 1667 사일로 명령(Silo Commnad)에 의해 어드레스 가능한 저장 위치 중 적어도 하나를 포함할 수 있다.
제어기(122)는 호스트 인터페이스(120)를 통해 호스트(102)로부터 요청들을 수신하고, 비휘발성 메모리 어레이(124)에 대한 읽기(read) 및 쓰기(write) 액세스를 제어하도록 구성된다. 제어기(122)는 또한 호스트(102)로부터의 읽기 및 쓰기 요청들을 매핑된 장치(126)로 선택적으로 매핑하도록 구성된다. 예를 들면, 요청(106)이 제2 어드레스 영역(134)에 대한 쓰기 액세스 요청을 포함할 때, 제어기(122)는 요청(106)에 응답하여 요청(136)을 호스트로부터의 요청으로서 매핑된 장치(126)로 향하도록 되어 있을 수 있다. 호스트(102)에 의해 요청(106)을 이용하여 제공되는 값(160)과 같이, 요청(136)은 매핑된 장치(126)에 적용되는 설정들이나 값들을 포함할 수 있다. 또 다른 예로서, 요청(106)이 제2 어드레스 영역(134)에 대한 읽기 액세스 요청을 포함할 때, 제어기(122)는 요청(106)에 응답하여 요청(136)을 매핑된 장치(126)에 해당하는 데이터 요청을 포함하는 요청(136)으로서 매핑된 장치(126)로 향하도록 되어 있을 수 있다.
특정 실시예에서, 제어기(122)는 값(160)과 같이 요청(106)을 통해 수신된 데이터를 비휘발성 메모리 어레이(124)에 저장하고 초기화 절차 동안에 저장된 데이터를 매핑된 장치(126)로 제공하도록 구성된다. 예를 들면, 제어기(122)는 매핑된 장치(126)를 위한 설정들을 제1 어드레스 영역(132)이나 제2 어드레스 영역(134)에 해당하는 비휘발성 메모리 어레이(124)의 메모리 위치에 저장할 수 있고, 파워-온(power-on) 절차 동안에 그 저장된 설정들을 매핑된 장치(126)로 제공할 수 있다.
매핑된 장치(126)는 제1 어드레스 영역(132)에 대한 USB 대용량 저장 클래스 액세스에 의해 제공되지 않는 기능들을 제공한다. 예를 들면, 매핑된 장치(126)는 사용자 입력 장치(user input device), 프린터(printer), 스캐너(scanner), 카메라(camera), 버저(buzzer), 발광 다이오드(LED), 알람(alarm), 스마트 카드(smart card), 온도 센서, 광 센서, 화학적 센서, 아날로그-대-디지털 변환 장치(analog-to-digital converting device), 클록(clock), 타이머(timer), 가속도계(accelerometer), 스위치(switch), 릴레이(relay), 디지털-대-아날로그 변환 장치(digital-to-analog converting device)를 포함할 수 있다. 특정 실시예에서, 매핑된 장치(126)는 PCI(Peripheral Component Interconnect) 버스, I2C(Inter-Integrated Circuit) 버스, OneWire™ 버스, 직렬 버스, 병렬 버스, 임의의 다른 버스 타입이나 이들의 임의의 조합을 위한 제어기와 같은 버스 제어기(bus controller)이다.
동작 동안에, 데이터 저장 장치(104)는 호스트(102)로부터 제2 어드레스 영역(134)에 대한 읽기 액세스 요청에 응답하여 매핑된 장치(126)의 값을 제공하도록 구성될 수 있다. 데이터 저장 장치(104)는 또한 호스트(102)로부터 제2 어드레스 영역(134)에 대한 쓰기 액세스 요청에 응답하여 매핑된 장치(126)의 값들을 설정하도록 구성될 수 있다. 따라서, 데이터 저장 장치(104)는 메모리 매핑을 통해 매핑된 장치(126)에 대한 액세스를 제공함으로써 단일의 엔드포인트(endpoint)로서 그리고 대용량 저장 클래스(Mass Storage Class, MSC)로서 호스트에 액세스 가능할 수 있다. USB 구현예에서, 호스트(102)는 MSC 장치 클래스를 이용하여 비휘발성 메모리 어레이(124)의 기능들을 액세스할 수 있고, 또한 매핑된 장치(126)에 대한 부가적인 USB 장치 클래스 드라이버를 설치하지 않고 매핑된 장치(126)의 비-MSC 기능들을 액세스할 수 있다. USB 장치 클래스들은 통신을 위해 복수의 논리적 채널들(logical channels) 또는 "파이프들(pipes)"을 활용할 수 있으며, 각각의 파이프는 USB 장치에서 해당 엔드포인트에 할당된다. USB 구현예들에서, 장치에 이용가능한 파이프들의 총 개수는 제한될 수 있고, 각각의 파이프는 호스트(102)에서 또는 데이터 저장 장치(104)에서 USB 버스를 통해 전송할 데이터를 버퍼링(buffer)하기 위한 버퍼를 필요로 할 수 있다. 데이터 저장 장치(104)를 위한 MSC 장치 클래스를 구현하고 메모리 매핑을 통해 매핑된 장치(126)에 액세스를 가능하게 함으로써, 파이프들, 장치 드라이버들, 버퍼들의 개수가 복수의 장치 클래스들을 구현하는 것과 비교하여 감소될 수 있다.
예시적으로, 특정 실시예에서, 요청(106)이 제2 어드레스 영역(134)에 쓰여질 값(160)을 포함하는 쓰기 요청일 때, 제어기(122)는 매핑된 장치(126)의 하나 이상의 파라미터들을 조정하기 위해 값(160)을 사용한다. 요청(106)이 제2 어드레스 영역(134)을 읽기 위한 읽기 요청일 때, 제어기(122)는 매핑된 장치(126)로부터 데이터를 읽는 명령으로서 요청(106)을 해석(interpret)하고 요청(136)을 매핑된 장치로 송신한다. 매핑된 장치(126)는 읽기 요청(136)에 응답하여 매핑된 장치(126)의 값을 매핑된 장치 데이터(128)로서 제공할 수 있다.
예를 들면, 매핑된 장치 데이터(138)로서 제공되는 값은 상태 표시자(status indicator), 스위치 설정, 또는 임의의 장치 정보를 포함할 수 있다. 매핑된 장치 데이터(138)는 매핑된 장치(126)로부터 제어기(122)로 제공될 수 있고, 제어기(122)는 매핑된 장치 데이터(138)를 매핑된 장치 데이터(108)로서 호스트(102)로 송신하도록 구성될 수 있다.
또 다른 실시예에서, 매핑된 장치 데이터(138)는 비휘발성 메모리 어레이(124)에 저장될 수 있다. 예를 들면, 제2 어드레스 영역(134)이 비휘발성 메모리 어레이(124)의 사용가능한 메모리와 관련되는 실시예에서, 매핑된 장치 데이터(138)는 제2 어드레스 영역(134)을 액세스하는 메모리 읽기 요청을 통해 호스트(102)에 의해 회수되도록 제2 어드레스 영역(134)에 저장될 수 있다. 또 다른 예로서, 예컨대 제2 어드레스 영역(134)이 사용가능한 메모리에 해당하지 않을 때에는, 매핑된 장치 데이터(138)가 제1 어드레스 영역(132)에 저장될 수 있다. 제1 어드레스 영역(132)에서 매핑된 장치 데이터(138)의 위치는 호스트(102)에 의해 알려져 있을 수 있고, 호스트(102)에 의해 시작되는 특정 위치에 대한 메모리 읽기 요청을 통해 액세스 가능할 수 있다. 대체가능한 것으로, 제어기(122)는 호스트(102)에 트랜스페어런트(transparent)한 방식으로 제1 어드레스 영역(132)으로부터 매핑된 장치 데이터(138)의 회수를 관리할 수 있다.
특정 실시예에서, 제2 어드레스 영역(134)은 파일(164)을 이용하여 호스트(102)에 의해 간접적으로 액세스된다. 파일(164)은 호스트(102)의 운영 체제(162)에 의해 제2 어드레스 영역(134)과 관련될 수 있다. 또 다른 실시예에서, 제2 어드레스 영역(134)은 파일(164)의 사용 없이 호스트(102)에 의해 직접적으로 액세스된다.
특정 구현예에서, 호스트(102)로부터의 명령은 제어기(122)에 의해 비휘발성 메모리 어레이(124)의 외부에 있는 매핑된 장치(126)로 매핑된다. 명령은 보안 프로토콜과 부합하도록(compliant) 전달될 수 있고, 제어기(122)는 호스트(102)로부터 매핑된 장치(126)와 관련된 식별자를 수신한다. 특정 실시예에서, 보안 프로토콜은 SCSI(small computer system interface) 프로토콜이다. 명령은 미국전기전자협회 IEEE 표준 1667과 부합할 수 있다.
예를 들면, 데이터 저장 장치(104)는 IEEE 1667과 부합하는 제1 사일로(silo)를 포함하는 ACT(Addressable Content Target)를 포함할 수 있다. 프로브 명령(probe command)은 매핑된 장치(126)에 사용되는 제2 사일로에 대한 사일로 타입 식별자(silo type identifier)를 포함하여 ACT에 구현된 각각의 사일로에 대한 사일로 타입 식별자를 호스트로 반환할 수 있다. 호스트(102)는 제2 사일로의 사일로 타입 식별자를 통해 매핑된 장치(126)의 존재를 판별할 수 있고, 또한 제2 어드레스 영역(134)을 액세스하는 인터페이스를 제공하기 위해 그 사일로 타입에 대해 정의된 명령들을 판별할 수 있다.
SCSI 보안 프로토콜 구현예에서, 호스트(102)는 매핑된 장치의 사일로를 식별하는 SCSI 보안 프로토콜 아웃 명령(SCSI Security Protocol Out command)을 포함하는 요청(106)을 생성할 수 있고, 사일로 타입에 의해 지원되는 장치 명령은 값(160)과 같은 하나 이상의 값들을 포함할 수 있다. 제어기(122)는 요청(106)을 해석하고 요청(136)을 통해 매핑된 장치(126)로 장치 명령을 제공할 수 있다. 호스트(102)는 또한 데이터 저장 장치(104)로 SCSI 보안 프로토콜 인 명령(SCSI Security Protocol In command)을 송신할 수 있다. 보안 프로토콜 인 명령은 그 장치 명령에 응답하여 제공되는 매핑된 장치 데이터(138)를 읽는 요청으로서 제어기(122)에 의해 해석될 수 있다. 제어기(122)는 매핑된 장치(126)의 사일로 타입에 의해 특정되는 포맷(format)으로 매핑된 장치 데이터(108)를 호스트(102)로 전송을 시작할 수 있다. 데이터 저장 장치(104)가 주변 장치(peripheral device)들과 같은 복수의 장치들을 포함하거나 지원하는 실시예에서, 비휘발성 메모리 어레이(124)는 호스트(102)에 의한 액세스를 가능하게 하는 장치들과 관련된 복수의 사일로 타입들 및/또는 복수의 장치들과 관련된 단일의 사일로 타입을 포함할 수 있다.
도 3에 대하여 논의될 바와 같이, 장치 어드레스 공간(130)은 하나 이상의 부가적인 어드레스 영역들을 더 포함할 수 있다. 예를 들면, 장치 어드레스 공간(130)은 제3 어드레스 영역들 포함할 수 있고, 제3 어드레스 영역을 액세스하는 호스트(102)로부터의 요청은 제어기에 의해 제2 매핑된 장치로 매핑될 수 있다. 도 4에 대하여 논의될 바와 같이, 매핑된 장치(126)는 장치 인터페이스를 통해 데이터 저장 장치(104)에 연결되는 제1 외부 장치일 수 있고, 제2 매핑된 장치는 제2 장치 인터페이스를 통해 데이터 저장 장치(104)에 연결되는 제2 외부 장치일 수 있다.
비휘발성 메모리 어레이(124)에 호스트 액세스를 가능하게 하고 또한 제2 어드레스 영역(134)에 대한 액세스 요청들을 매핑된 장치(126)로 매핑함으로써 매핑된 장치(126)에 호스트 액세스를 가능하게 함으로써, 서로 다른 장치 클래스들의 데이터 저장 장치(102)의 복수의 컴포넌트들이 단일의 연결 엔드포인트를 이용하여 호스트(102)에 액세스 가능하다. 예를 들면, 한 USB 구현예에서, 비휘발성 메모리 어레이(124)와 매핑된 장치(126) 모두는 단일의 MSC 장치 인터페이스를 통해 액세스 가능하다. 이러한 구현예는 매핑된 장치(126)를 별개의 USB 클래스로서 지원하는데 요구될 수 있는 USB 엔드포인트들과 버퍼들의 개수를 감소시킬 수 있다.
도 2를 보면, 호스트 액세스 요청을 매핑하는 시스템의 제2 특정 실시예가 도시되어 있고, 일반적으로 200으로 지정된다. 시스템(200)은 데이터 저장 장치(204)에 연결되는 호스트(202)를 포함한다. 호스트(202)는 호스트 메모리 공간에 의해 어드레스 가능한 호스트 메모리(210)를 포함한다. 데이터 저장 장치(204)는 호스트 메모리 어드레스 공간과 독립적인 장치 어드레스 공간(230)을 포함한다. 장치 어드레스 공간(230)은 비휘발성 메모리 어레이(224)로 매핑되는 제1 어드레스 영역(232)과 매핑된 장치(226)로 매핑되는 제2 어드레스 영역(234)을 포함한다. 특정 실시예에서, 시스템(200)의 하나 이상의 컴포넌트들은 도 1의 시스템(100)의 해당 컴포넌트들과 실질적으로 유사하게 동작할 수 있다.
매핑된 장치(226)는 제2 어드레스 영역(234)을 액세스하는 요청(206)을 통해 호스트(202)에 액세스 가능하다. 제어기(222)는 요청(206)을 제2 어드레스 영역(234)에 대한 쓰기 또는 읽기 요청으로서 식별하고 요청(236)을 매핑된 장치(226)로 송신하도록 구성된다. 요청(206)이 쓰기 요청일 때, 요청(236)은 매핑된 장치(226)의 파라미터들을 설정할 수 있다. 요청(206)이 읽기 요청일 때, 요청(236)은 매핑된 장치(226)로부터 설정들의 값이나 다른 데이터를 위한 요청을 가리킬 수 있다.
매핑된 장치(226)는 호스트(202)로 송신될 요청(240)을 생성하도록 구성된다. 요청(240)은 제2 어드레스 영역(234)을 액세스하는 요청을 포함할 수 있다. 요청(240)은 제어기(222)에 의해 호스트(202)로 매핑될 수 있고, 제어기(222)는 호스트 인터페이스(220)를 통해 호스트(202)로 요청(242)의 송신을 시작할 수 있다. 요청(242)은 요청(240)에 해당할 수 있다.
특정 실시예에서, 요청(240)은 메모리 읽기 요청 동안에 호스트(202)에 의해 액세스될 비휘발성 메모리 어레이(224)에 저장될 수 있다. 또 다른 실시예에서, 예컨대 호스트 인터페이스(220)가 USB 장치들이 USB 호스트로 요청들을 송신하는 것을 가능하게 하는 USB 3.0 인터페이스를 포함하는 경우에, 요청(240)은 매핑된 장치(226)에 의해 제어기(222)로 제공될 수 있고, 제어기(222)는 호스트 인터페이스(220)를 통해 호스트(202)로 요청(242)의 송신을 시작할 수 있다.
도 3을 보면, 메모리 요청을 매핑하는 시스템의 특정 실시예가 도시되어 있고, 일반적으로 300으로 지정된다. 시스템(300)은 제1 어드레스 영역(304), 제2 어드레스 영역(306) 및 제3 어드레스 영역(308)을 포함하는 데이터 어드레스 공간(302)을 포함한다. 제1 어드레스 영역(304)은 도 1의 데이터 저장 장치(104)나 도 2의 데이터 저장 장치(204)와 같은 데이터 저장 장치에서 사용가능한 물리적 메모리(usable physical memory)에 해당하는 어드레스들의 범위를 포함할 수 있다. 제2 어드레스 영역(306)과 제3 어드레스 영역(308)은 마지막 사용가능한 메모리 어드레스(310)를 지나서 있다.
제2 어드레스 영역(306)은 메모리 제어기에 의해 도 1의 매핑된 장치(126)나 도 2의 매핑된 장치(226)와 같이 물리적 메모리의 외부에 있는 특정 장치에 해당하는 것으로서 매핑될 수 있다. 유사하게, 제3 어드레스 영역(308)은 메모리 제어기에 의해 제2 장치로 매핑되는 것으로서 식별될 수 있다. 도 3은 제2 어드레스 영역(306)과 제3 어드레스 영역(308)을 도시하고 있지만, 다른 실시예들에서 데이터 어드레스 공간(302)은 마지막 사용가능한 메모리 어드레스(310)를 지나서 단일의 어드레스 영역들 포함할 수 있거나, 또는 마지막 사용가능한 메모리 어드레스(310)를 넘어서 3개 이상의 어드레스 영역들을 포함할 수 있다.
USB 구현예에서, 데이터 어드레스 공간(302)은 USB MSC 장치 인터페이스를 통해 액세스되는 메모리 장치에 해당할 수 있다. 메모리의 외부에 있는 복수의 장치들이 USB 장치들로서 부가되지 않고 호스트 장치에 의해 액세스 가능하도록 매핑된다.
도 4를 보면, 호스트 액세스 요청을 매핑하는 시스템의 특정 실시예가 도시되어 있고, 일반적으로 400으로 지정된다. 시스템(400)은 데이터 저장 장치(404)에 연결되는 호스트(402)를 포함한다. 데이터 저장 장치(404)는 하나 이상의 주변 장치들과 같은 외부 장치(406)와 제2 외부 장치(408)에 연결된다. 예시적인 실시예에서, 데이터 저장 장치(404)는 도 1의 데이터 저장 장치(104)나 도 2의 데이터 저장 장치(204)이다.
특정 실시예에서, 데이터 저장 장치(404)는 호스트 인터페이스(420), 비휘발성 메모리 어레이(424), 장치 인터페이스(450) 및 제2 장치 인터페이스(452)를 포함한다. 호스트 인터페이스(420)는 데이터 저장 장치(404)를 호스트(402)에 연결하도록 구성된다. 호스트 인터페이스(420)는 또한 호스트(402)가 메모리 액세스 요청들을 데이터 저장 장치(404)로 송신하는 것을 가능하게 하도록 구성된다. 호스트 인터페이스(420)는 또한 비휘발성 메모리 어레이(424)로부터 회수된 데이터, 장치 인터페이스(450)를 통해 회수된 데이터, 또는 제2 장치 인터페이스(452)를 통해 회수된 데이터와 같은 데이터를 호스트(402)로 제공하도록 구성된다. 특정 실시예에서, 호스트 인터페이스(420)는 데이터 저장 장치(404)를 호스트(402)에 분리가능하게(detachably) 연결하도록 되어 있는 USB 인터페이스를 포함한다.
특정 실시예에서, 장치 인터페이스(450)는 외부 장치(406)에 연결하도록 되어 있고, 제2 장치 인터페이스(452)는 제2 외부 장치(408)에 연결하도록 되어 있다. 호스트 인터페이스(420)는 USB 인터페이스를 구현한 것일 수 있고, 데이터 저장 장치(404)는 비휘발성 메모리 어레이(424)에 대한 액세스 요청들을 매핑함으로써 호스트(402)가 외부 장치(406)와 제2 외부 장치(408)를 액세스하는 것을 가능하게 할 수 있다. 따라서, 장치 인터페이스(450)와 제2 장치 인터페이스(452)는 USB 엔드포인트들을 나타내는 것이 아니다.
특정 실시예에서, 데이터 저장 장치(404)는 호스트로부터의 명령들을 비휘발성 메모리 어레이(424)로 매핑하거나, 또는 제1 외부 장치(406)와 제2 외부 장치(408)를 부가적인 USB 장치들로서 구현하지 않고 외부 장치(406)나 제2 외부 장치(408)로 매핑하도록 구성된다. 예를 들면, 제1 외부 장치(406)와 제2 외부 장치(408)는 호스트(402)로부터 송신된 각각 제1 외부 장치(406)와 제2 외부 장치(408)로 매핑되는 어드레스 영역들에 대한 메모리 액세스 요청들에 의해 액세스될 수 있다. 예를 들면, 비휘발성 메모리 어레이(424)는 외부 장치(406)가 제2 어드레스 영역(306)에 대한 액세스 요청을 통해 액세스 가능하고 제2 외부 장치(408)가 제3 어드레스 영역(308)에 대한 액세스 요청을 통해 액세스 가능하도록 도 3의 데이터 어드레스 공간(302)에 의해 어드레스 가능할 수 있다.
도 5를 보면, 호스트 액세스 요청을 매핑하는 방법의 제1 특정 실시예가 도시되어 있고, 일반적으로 500으로 지정된다. 특정 실시예에서, 방법(500)은 도 1의 데이터 저장 장치(104), 도 2의 데이터 저장 장치(204), 또는 도 4의 데이터 저장 장치(404)에 의해 수행될 수 있다.
502에서, 호스트로부터 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 요청이 USB 플래쉬 장치(USB flash device)에서 수신된다. 예를 들면, 플래쉬 메모리 어드레스 영역은 도 1의 데이터 저장 장치(104)의 제2 어드레스 영역(134)에 해당할 수 있고, 주변 장치는 도 1의 매핑된 장치(126)에 해당할 수 있다. 또 다른 실시예에서, 주변 장치는 도 4의 외부 장치(406)에 해당할 수 있다.
504로 나아가면, 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 호스트로부터의 요청이 주변 장치로 매핑된다. 예를 들면, 요청이 쓰기 요청일 때, 요청은 주변 장치에서 파라미터들을 설정하기 위해 주변 장치로 송신되는 명령으로서 매핑될 수 있다. 또 다른 예로서, 요청이 읽기 요청일 때, 요청은 주변 장치의 구성이나 상태 정보를 읽기 위해 주변 장치로 송신되는 명령으로서 매핑될 수 있다.
따라서, 호스트는 장치 어드레스 공간 내에서 메모리를 액세스하는 요청들을 이용하여 주변 장치를 액세스할 수 있고, 그 요청들은 주변 장치로 매핑된다. 결과적으로, 호스트에 의한 액세스를 가능하게 하기 위해 주변 장치를 위한 USB 장치 인터페이스가 지원될 필요는 없다.
도 6을 보면, 호스트 액세스 요청을 매핑하는 방법의 제2 특정 실시예가 도시되어 있고, 일반적으로 600으로 지정된다. 602에서, 방법(600)은 USB(Universal Serial Bus) 플래쉬 장치에서 호스트로부터 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 요청을 수신하는 것을 포함한다. USB 플래쉬 장치는 메모리 어레이 어드레스 공간과 관련된 메모리 어레이를 포함한다. 주변 장치와 관련된 플래쉬 메모리 어드레스 영역은 메모리 어레이 어드레스 공간의 외부에 있다. 예를 들면, 도 1의 데이터 저장 장치(104), 도 2의 데이터 저장 장치(204), 또는 도 4의 데이터 저장 장치(404)에서 요청이 수신될 수 있다.
604로 나아가면, 주변 장치와 관련된 메모리 어드레스 영역을 액세스하는 호스트로부터의 요청이 주변 장치로 매핑된다. 특정 실시예에서, 주변 장치와 관련된 플래쉬 메모리 어드레스 영역은 단일의 엔드포인트로서 그리고 대용량 저장 클래스(MSC) 장치로서 호스트에 액세스 가능하다.
606으로 이동하면, 주변 장치로부터 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 요청이 USB 플래쉬 장치에서 수신될 수 있다. 608로 진행하면, 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 주변 장치로부터의 요청이 호스트로 매핑된다. 특정 실시예에서, 주변 장치로부터의 요청은 도 2의 요청(242)을 통해 호스트(202)로 매핑되는 요청(240)이다.
610으로 속행하면, 주변 장치와 관련된 하나 이상의 설정들이 USB 플래쉬 장치에서 주변 장치와 관련된 플래쉬 메모리 어드레스 영역에 저장될 수 있다. 612로 진행하면, USB 플래쉬 장치가 호스트로부터 분리(detach)될 수 있고, 614로 이동하면, USB 플래쉬 장치가 제2 호스트에 부착(attach)될 수 있다. 616으로 진행하면, 제2 호스트로부터 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 요청이 USB 플래쉬 장치에서 수신될 수 있다. 618로 속행하면, 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 제2 호스트로부터의 요청이 주변 장치로 매핑된다. 따라서, USB 플래쉬 장치는 주변 장치와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 요청들을 매핑함으로써 복수의 호스트들이 주변 장치를 액세스하는 것을 가능하게 할 수 있다.
도 7을 보면, 호스트 액세스 요청을 매핑하는 방법의 제3 예시적인 실시예가 도시되어 있고, 일반적으로 700으로 지정된다. 702에서, 호스트로부터 대상 주변 장치를 액세스하는 요청이 USB(Universal Serial Bus) 호환 데이터 저장 장치에서 수신되며, 요청은 보안 프로토콜과 부합하고 대상 주변 장치와 관련된 식별자를 포함한다. 데이터 저장 장치는 플래쉬 장치와 같은 대용량 저장 장치일 수 있다.
보안 프로토콜은 SCSI(small computer system interface) 호환일 수 있다. 예를 들면, 호스트로부터의 요청은 SCSI 보안 프로토콜의 인 명령(In command)과 아웃 명령(Out command) 중 하나를 포함할 수 있다. 요청은 미국전기전자협회 IEEE 표준 1667과 부합할 수 있다.
특정 실시예에서, 식별자는 사일로 타입 식별자이다. 식별자는 대상 주변 장치의 타입에 해당하는 사일로 타입을 표시할 수 있다. 예를 들면, 사일로 타입은 발광 다이오드(LED)에 해당할 수 있다.
704로 속행하면, 호스트로부터의 요청이 대상 주변 장치로 송신될 명령으로 매핑된다. 706으로 진행하면, 대상 주변 장치로부터 수신된 데이터가 호스트로 전달된다. 데이터는 SCSI 보안 프로토콜의 아웃 명령을 사용하여 전달될 수 있다.
보안 프로토콜과 부합하는 요청을 사용함으로써, 데이터 저장 장치가 대상 주변 장치를 위한 USB 장치 인터페이스를 구현하지 않고도 호스트는 데이터 저장 장치를 통해 대상 주변 장치와 통신할 수 있다. 예를 들면, 데이터 저장 장치는 단일의 엔드포인트로서 그리고 대용량 저장 클래스(MSC) 장치로서 호스트에 액세스 가능한 플래쉬 메모리 장치일 수 있는 동시에 호스트가 대상 주변 장치에 액세스하는 것을 가능하게 해줄 수 있다.
본 명세서에서 도시된 다양한 컴포넌트들이 블록 컴포넌트(block component)들로서 예시되고 일반적인 용어들로 서술되어 있지만, 이러한 컴포넌트들은 도 1의 데이터 저장 장치(104)나 도 2의 데이터 저장 장치(204)가 이러한 컴포넌트들 또는 이들의 임의의 조합에 기인하는 특정한 기능들을 수행하는 것을 가능하게 하도록 구성된 하나 이상의 마이크로프로세서들, 스테이트 머신들(state machines), 또는 다른 회로들을 포함할 수 있다. 예를 들면, 도 1의 호스트 인터페이스(120), 제어기(122), 또는 양자 모두는 제2 어드레스 영역(134)에 대한 호스트 요청들을 매핑된 장치(126)로 매핑함으로써 데이터 저장 장치(104)가 호스트 장치나 다른 외부 장치들로부터의 데이터 요청들을 수신하고 응답하는 것을 가능하게 하는 제어기, 스테이트 머신, 로직 회로 또는 다른 구조들과 같은 물리적 컴포넌트들을 나타낼 수 있다.
예를 들면, 도 1의 제어기(122)는 호스트로부터의 메모리 액세스 요청이 제2 어드레스 영역(134)에 해당하는지 여부를 판별하고 그 요청이 제2 어드레스 영역(134)에 해당할 때 그 요청을 매핑된 장치(126)로 송신하도록 프로그램되는 마이크로프로세서나 마이크로컨트롤러를 사용하여 구현될 수 있다. 특정 실시예에서, 도 1의 제어기(122)는 프로세서에 의해 실행되는 실행가능한 명령어들을 포함하고, 그 명령어들은 메모리 어레이(124)에 저장된다. 대체가능한 것으로 또는 부가적으로, 프로세서에 의해 실행되는 실행가능한 명령어들은 메모리 어레이(104)의 일부가 아닌 별도의 메모리 위치, 예컨대 제어기(122)에서 ROM(read-only memory)(미도시됨)에 저장될 수 있다.
특정 실시예에서, 데이터 저장 장치(104)는 하나 이상의 외부 장치들에 선택적으로 연결되도록 구성되는 휴대용 장치(portable device)일 수 있다. 하지만, 다른 실시예들에서, 데이터 저장 장치는 휴대용 통신 장치의 하우징(housing) 내에서와 같이 하나 이상의 호스트 장치들 내에 부착되거나 내장될 수 있다. 예를 들면, 데이터 저장 장치는 무선 전화, PDA(personal digital assistant), 게임 장치나 콘솔(console), 휴대용 항법 장치(portable navigation device), 또는 내부 비휘발성 메모리를 사용하는 다른 장치와 같은 패키징된(packaged) 장치 내에 있을 수 있다. 특정 실시예에서, 데이터 저장 장치(104)는 플래쉬 메모리(예컨대, NAND, NOR, MLC(Multi-Level Cell), DINOR(Divided bit-line NOR), AND, HiCR(high capacitive coupling ratio), ACT(asymmetrical contactless transistor), 또는 다른 플래쉬 메모리들), EPROM(erasable programmble read-only memory), EEPROM(electrically-erasable programmble read-only memory), ROM(read-only memory), OTP(one-time programmable memory), 또는 임의의 다른 종류의 메모리와 같은 비휘발성 메모리를 포함한다.
본 명세서에서 서술된 실시예들에 대한 예시들은 다양한 실시예들의 구조에 대한 일반적인 이해를 제공하도록 의도된 것이다. 상기 예시들은 본 명세서에서 서술된 구조들이나 방법들을 활용하는 장치 및 시스템들의 모든 구성 요소들과 특징들에 대한 완전한 설명을 제공하고자 의도된 것이 아니다. 본 개시를 검토한다면 많은 다른 실시예들이 당해 기술 분야의 숙련된 자들에게 자명할 수 있다. 다른 실시예들이 활용될 수 있고 본 개시로부터 유도될 수 있으므로, 본 개시의 범위를 벗어나지 않고 구조적이고 논리적 치환들과 변경들이 가해질 수 있다. 특정 실시예들이 본 명세서에서 예시되었고 서술되었지만, 차후에 동일하거나 유사한 목적을 달성하도록 설계된 임의의 배치가 개시된 특정 실시예들을 대체할 수 있다는 점을 인지하여야 한다. 본 개시는 다양한 실시예들의 임의의 그리고 모든 차후의 조정들이나 변경들을 커버하도록 의도된 것이다. 본 개시를 검토한다면 상기 실시예들의 조합들과 본 명세서에서 구체적으로 서술되지 않은 다른 실시예들이 당해 기술 분야의 기술자들에게 자명할 것이다. 따라서, 상기 개시 및 도면들은 제한적인 것이 아닌 예시적인 것으로 간주되어야 한다.
본 개시의 요약은 청구항들의 범위나 의미를 해석하거나 제한하는데 이용되지 않을 것이라고 이해하며 제출된 것이다. 게다가, 전술한 상세한 설명에서, 본 개시를 간소화할 목적으로 다양한 특징들이 함께 무리지어 지거나, 또는 단일의 실시예에서 서술될 수 있다. 청구된 실시예들이 각각의 청구항에서 명확히 인용된 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 본 개시가 해석되어져서는 안 된다. 오히려, 다음의 특허 청구 범위가 반영하는 바와 같이, 발명의 주요 사항은 개시된 실시예들 중 임의의 실시예의 특징들 모두보다 더 적은 것들에 대한 것일 수도 있다.
상기 개시된 주요 내용은 예시적이고 제한적이지 않은 것으로 고려되어야 하고, 첨부된 특허 청구 범위는 본 개시의 범위 내에 들어오는 모든 이러한 변경들, 개선들, 및 다른 실시예들을 커버하도록 의도된 것이다. 따라서, 법에 의해 허용되는 최대한의 정도로, 본 발명의 범위는 다음의 청구항들과 그들의 균등물들에 대해 허용가능한 가장 넓게 해석함으로써 결정되어야 하고, 전술한 상세한 설명에 의해 제한되거나 한정되지 않아야 한다.

Claims (40)

  1. 데이터 저장 장치를 호스트에 연결하도록 되어 있는 호스트 인터페이스와, 상기 호스트는 호스트 메모리 어드레스 공간(host memory address space)에 의해 어드레스 가능한(addressable) 메모리를 포함하며;
    상기 호스트 메모리 어드레스 공간과 독립적이고, 제1 어드레스 영역 및 상기 제1 어드레스 영역과 구별되는 제2 어드레스 영역을 포함하는 장치 어드레스 공간(device address space)과;
    비휘발성 메모리 어레이와; 그리고
    상기 비휘발성 메모리 어레이에 연결되고, 매핑된 장치(mapped device)에 또한 연결되는 제어기(controller)를 포함하며,
    상기 제어기는 상기 장치 어드레스 공간의 상기 제1 어드레스 영역에 액세스하기 위한 상기 호스트로부터의 제1 요청에 응답하여 상기 비휘발성 메모리 어레이에서 메모리 액세스 동작을 수행하도록 되어 있고,
    상기 제어기는 또한 상기 장치 어드레스 공간의 상기 제2 어드레스 영역에 액세스하기 위한 상기 호스트로부터의 제2 요청에 응답하여 상기 제2 요청을 상기 매핑된 장치로 매핑하도록 되어 있는
    데이터 저장 장치.
  2. 제1항에 있어서,
    상기 데이터 저장 장치는 상기 제2 어드레스 영역에 대한 읽기(read) 액세스 요청에 응답하여 상기 매핑된 장치의 값을 제공하는
    데이터 저장 장치.
  3. 제2항에 있어서,
    상기 제어기는 상기 제2 어드레스 영역에 대한 쓰기(write) 액세스 요청에 응답하여 상기 매핑된 장치의 하나 이상의 파라미터들을 조정하기 위해 상기 값을 사용하는
    데이터 저장 장치.
  4. 제3항에 있어서,
    상기 제어기는 상기 제2 어드레스 영역에 대한 쓰기 액세스 요청을 통해 수신된 데이터를 상기 비휘발성 메모리에 저장하고, 초기화 절차 동안에 상기 저장된 데이터를 상기 매핑된 장치로 제공하도록 구성되는
    데이터 저장 장치.
  5. 제1항에 있어서,
    상기 제2 어드레스 영역을 액세스하는 상기 매핑된 장치로부터의 요청은 상기 제어기에 의해 상기 호스트로 매핑되는
    데이터 저장 장치.
  6. 제1항에 있어서,
    상기 호스트 인터페이스는 상기 호스트로부터 분리가능한 USB(Universal Serial Bus) 인터페이스를 포함하는
    데이터 저장 장치.
  7. 제1항에 있어서,
    상기 비휘발성 메모리 어레이는 플래쉬 메모리 어레이(flash memory array)를 포함하는
    데이터 저장 장치.
  8. 제1항에 있어서,
    상기 데이터 저장 장치는 단일의 엔드포인트(endpoint)로서 그리고 대용량 저장 클래스(mass storage class, MSC) 장치로서 상기 호스트에 액세스 가능한
    데이터 저장 장치.
  9. 제1항에 있어서,
    상기 제1 어드레스 영역은 데이터를 저장하도록 되어 있고, 저장 요청(storage request)은 상기 제어기에 의해 상기 제1 어드레스 영역으로 매핑되는
    데이터 저장 장치.
  10. 제1항에 있어서,
    상기 제2 어드레스 영역은 상기 비휘발성 메모리 어레이의 사용가능한 메모리 섹터(usable memory sector)를 포함하는
    데이터 저장 장치.
  11. 제1항에 있어서,
    상기 제2 어드레스 영역은 상기 비휘발성 메모리 어레이의 사용가능한 메모리 섹터를 넘어서는 메모리 어드레스 영역을 포함하는
    데이터 저장 장치.
  12. 제1항에 있어서,
    상기 제2 어드레스 영역은 숨은 저장 영역(hidden storage area) 내의 메모리와 관련되는
    데이터 저장 장치.
  13. 제12항에 있어서,
    상기 숨은 저장 영역은 U3 숨은 영역, TrustedFlash 숨은 영역, TrustedFlash 보안 데이터 객체(Secure Data Object, SDO) 및 미국전기전자협회 IEEE 1667 사일로 명령(Silo Commnad)에 의해 어드레스 가능한 저장 위치 중 적어도 하나를 포함하는
    데이터 저장 장치.
  14. 제1항에 있어서,
    상기 제2 어드레스 영역은 상기 호스트에 의해 직접적으로 액세스되는
    데이터 저장 장치.
  15. 제1항에 있어서,
    상기 제2 어드레스 영역은 상기 호스트의 운영 체제에 의해 상기 제2 어드레스 영역과 관련되는 적어도 하나의 파일을 이용하여 상기 호스트에 의해 간접적으로 액세스되는
    데이터 저장 장치.
  16. 제1항에 있어서,
    상기 장치 어드레스 공간은 제3 어드레스 영역을 더 포함하고, 상기 제3 어드레스 영역을 액세스하는 상기 호스트로부터의 요청은 상기 제어기에 의해 제2 매핑된 장치로 매핑되는
    데이터 저장 장치.
  17. 제16항에 있어서,
    상기 매핑된 장치는 장치 인터페이스를 통해 상기 데이터 저장 장치에 연결되는 제1 외부 장치이고, 상기 제2 매핑된 장치는 제2 장치 인터페이스를 통해 상기 데이터 저장 장치에 연결되는 제2 외부 장치인
    데이터 저장 장치.
  18. 제1항에 있어서,
    상기 매핑된 장치는 대용량 저장 클래스 외의 USB(Universal Serial Bus) 클래스와 관련되는
    데이터 저장 장치.
  19. 제18항에 있어서,
    상기 매핑된 장치는 사용자 입력 장치(user input device), 프린터(printer), 스캐너(scanner), 카메라(camera), 버저(buzzer), 발광 다이오드(LED), 알람(alarm), 스마트 카드(smart card), 온도 센서, 광 센서, 화학적 센서, 아날로그-대-디지털 변환 장치(analog-to-digital converting device), 클록(clock), 타이머(timer), 가속도계(accelerometer), 스위치(switch), 릴레이(relay), 디지털-대-아날로그 변환 장치(digital-to-analog converting device) 중 하나를 포함하는
    데이터 저장 장치.
  20. 제18항에 있어서,
    상기 매핑된 장치는 버스 제어기(bus controller)인
    데이터 저장 장치.
  21. 제어기를 포함하며,
    상기 제어기는 호스트 메모리 어드레스 공간과 독립적인 장치 어드레스 공간의 제1 어드레스 영역에 의해 어드레스 가능한 비휘발성 메모리 어레이에 연결되도록 구성되고, 상기 장치 어드레스 공간은 상기 제1 어드레스 영역과 제2 어드레스 영역을 포함하며;
    상기 제어기는 호스트 인터페이스를 통해 호스트로부터 상기 제2 어드레스 영역을 액세스하는 요청을 수신하도록 구성되고;
    상기 제어기는 상기 요청을 상기 비휘발성 메모리 어레이의 외부에 있는 장치로 매핑하도록 구성되는
    장치.
  22. 제21항에 있어서,
    상기 제어기에 연결되는 상기 비휘발성 메모리 어레이를 더 포함하는
    장치.
  23. USB(Universal Serial Bus) 플래쉬 장치에서, 호스트로부터 주변 장치(peripheral device)와 관련된 플래쉬 메모리 어드레스 영역을 액세스하는 요청을 수신하는 단계와, 상기 USB 플래쉬 장치는 메모리 어레이 어드레스 공간과 관련된 메모리 어레이를 포함하고, 상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역은 상기 메모리 어레이 어드레스 공간의 외부에 있으며; 그리고
    상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역을 액세스하는 상기 호스트로부터의 상기 요청을 상기 주변 장치로 매핑하는 단계
    를 포함하는 방법.
  24. 제23항에 있어서,
    상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역은 단일의 엔드포인트로서 그리고 대용량 저장 클래스(MSC) 장치로서 호스트에 액세스 가능한
    방법.
  25. 제23항에 있어서,
    상기 USB 플래쉬 장치에서, 상기 주변 장치로부터 상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역을 액세스하는 요청을 수신하는 단계와; 그리고
    상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역을 액세스하는 상기 주변 장치로부터의 상기 요청을 상기 호스트로 매핑하는 단계
    를 더 포함하는 방법.
  26. 제23항에 있어서,
    상기 주변 장치와 관련된 하나 이상의 설정들을 상기 USB 플래쉬 장치에서 상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역에 저장하는 단계
    를 더 포함하는 방법.
  27. 제26항에 있어서,
    상기 USB 플래쉬 장치를 상기 호스트로부터 분리하는 단계와;
    상기 USB 플래쉬 장치를 제2 호스트로 부착하는 단계와;
    상기 USB 플래쉬 장치에서, 상기 제2 호스트로부터 상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역을 액세스하는 요청을 수신하는 단계와; 그리고
    상기 주변 장치와 관련된 상기 플래쉬 메모리 어드레스 영역을 액세스하는 상기 제2 호스트로부터의 상기 요청을 상기 주변 장치로 매핑하는 단계
    를 더 포함하는 방법.
  28. 분리가능한 USB(Universal Serial Bus) 플래쉬 장치를 호스트에 연결하도록 되어 있는 USB 인터페이스와, 상기 호스트는 호스트 메모리 어드레스 공간에 의해 어드레스 가능한 메모리를 포함하며;
    상기 분리가능한 USB 플래쉬 장치를 주변 장치에 연결하도록 되어 있고, 상기 호스트 인터페이스와 서로 다른 장치 인터페이스와;
    장치 어드레스 공간의 제1 어드레스 영역과 관련된 플래쉬 메모리 어레이와; 그리고
    상기 플래쉬 메모리 어레이에 연결되는 제어기
    를 포함하며,
    상기 제어기는 상기 장치 어드레스 공간의 제2 어드레스 영역을 액세스하는 상기 호스트로부터의 요청에 응답하여 상기 호스트로부터의 상기 요청을 상기 장치 인터페이스를 통해 상기 주변 장치로 매핑하도록 되어 있고,
    상기 제2 어드레스 영역은 상기 제1 어드레스 영역과 구별되며, 그리고
    상기 제어기는 또한 상기 제2 어드레스 영역을 액세스하는 상기 주변 장치로부터의 요청에 응답하여 상기 주변 장치로부터의 상기 요청을 상기 USB 인터페이스를 통해 상기 호스트로 매핑하도록 되어 있는
    분리가능한 USB 플래쉬 장치.
  29. USB(universal serial bus) 호환 데이터 저장 장치에서, 호스트로부터 대상 주변 장치를 액세스하는 요청을 수신하는 단계와, 상기 요청은 보안 프로토콜(security protocol)과 부합하고 상기 대상 주변 장치와 관련된 식별자를 포함하고, 상기 데이터 저장 장치는 대용량 저장 장치이며; 그리고
    상기 호스트로부터의 상기 요청을 상기 대상 주변 장치로 송신될 명령으로 매핑하는 단계
    를 포함하는 방법.
  30. 제29항에 있어서,
    상기 식별자는 사일로 타입 식별자(silo type identifier)인
    방법.
  31. 제29항에 있어서,
    상기 요청은 미국전기전자협회 IEEE 표준 1667과 부합하는
    방법.
  32. 제29항에 있어서,
    상기 보안 프로토콜은 SCSI(small computer system interface) 호환인
    방법.
  33. 제29항에 있어서,
    상기 대상 주변 장치로부터 수신된 데이터를 상기 호스트로 전달하는 단계
    를 더 포함하는 방법.
  34. 제33항에 있어서,
    상기 데이터는 SCSI(small computer system interface) 보안 프로토콜의 아웃 명령(Out command)을 이용하여 전달되는
    방법.
  35. 제29항에 있어서,
    상기 호스트로부터의 상기 명령은 SCSI(small computer system interface) 보안 프로토콜의 인 명령(In command)과 아웃 명령 중 하나를 포함하는
    방법.
  36. 제35항에 있어서,
    상기 식별자는 상기 대상 주변 장치의 타입에 해당하는 사일로 타입을 표시하는
    방법.
  37. 제36항에 있어서,
    상기 사일로 타입은 발광 다이오드(LED)에 해당하는
    방법.
  38. 제29항에 있어서,
    상기 데이터 저장 장치는 단일의 엔드포인트로서 그리고 대용량 저장 클래스(MSC) 장치로서 호스트에 액세스 가능한 플래쉬 메모리 장치인
    방법.
  39. 데이터 저장 장치를 호스트에 연결하도록 되어 있는 호스트 인터페이스와;
    비휘발성 메모리 어레이와; 그리고
    상기 비휘발성 메모리 어레이에 연결되는 제어기
    를 포함하며,
    상기 제어기는 상기 호스트로부터의 명령을 외부 장치로 매핑하도록 구성되고,
    상기 명령은 보안 프로토콜과 부합하도록 전달되며, 그리고
    상기 제어기는 상기 호스트로부터 상기 외부 장치와 관련된 식별자를 수신하는
    데이터 저장 장치.
  40. 제39항에 있어서,
    상기 데이터 저장 장치는 대용량 저장 장치이고, 상기 외부 장치는 휴먼 인터페이스 장치(human interface device, HID)의 클래스를 가지는
    데이터 저장 장치.
KR1020117018191A 2009-02-11 2010-01-08 호스트 요청을 매핑하는 시스템 및 방법 KR20110117134A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/369,408 US8386723B2 (en) 2009-02-11 2009-02-11 System and method of host request mapping
US12/369,408 2009-02-11

Publications (1)

Publication Number Publication Date
KR20110117134A true KR20110117134A (ko) 2011-10-26

Family

ID=42246348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117018191A KR20110117134A (ko) 2009-02-11 2010-01-08 호스트 요청을 매핑하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US8386723B2 (ko)
EP (2) EP2426607A3 (ko)
KR (1) KR20110117134A (ko)
CN (1) CN102301348B (ko)
TW (1) TW201032054A (ko)
WO (1) WO2010093487A2 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092387B2 (en) * 2008-12-10 2015-07-28 Micron Technology, Inc. Non-volatile memory device capable of initiating transactions
WO2011026530A1 (en) * 2009-09-07 2011-03-10 Tomtom International B.V. Navigation apparatus and method of supporting hands-free voice communication
US8296495B2 (en) * 2010-07-22 2012-10-23 Sandisk Il Ltd. Using an add-on storage device for extending the storage capacity of a storage device in a host device
US8301824B2 (en) * 2010-07-22 2012-10-30 Sandisk Il Ltd. Using an add-on storage device for extending the storage capacity of a storage device
TWI451247B (zh) * 2010-09-23 2014-09-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8738843B2 (en) * 2010-12-20 2014-05-27 Lsi Corporation Data manipulation during memory backup
JP5734492B1 (ja) * 2014-05-08 2015-06-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN107209738B (zh) * 2015-05-02 2020-01-10 慧与发展有限责任合伙企业 储存存储器直接访问
US20170255565A1 (en) * 2016-03-02 2017-09-07 Intel Corporation Method and apparatus for providing a contiguously addressable memory region by remapping an address space
CN107526695B (zh) * 2016-06-20 2021-03-02 北京忆芯科技有限公司 NVMe配置空间实现方法与装置
CN112347012A (zh) * 2016-06-20 2021-02-09 北京忆芯科技有限公司 支持SR-IOV的NVMe控制器及方法
FR3055715B1 (fr) * 2016-09-08 2018-10-05 Upmem Methodes et dispositifs pour contourner le cache interne d'un controleur memoire dram evolue
US10176108B2 (en) * 2016-09-30 2019-01-08 Intel Corporation Accessing memory coupled to a target node from an initiator node
US10254974B2 (en) * 2016-11-15 2019-04-09 Samsung Electronics Co., Ltd. Storage device, computing device including the same, and operation method of the computing device
US10497438B2 (en) * 2017-04-14 2019-12-03 Sandisk Technologies Llc Cross-point memory array addressing
US11338586B2 (en) 2018-12-03 2022-05-24 Hewlett-Packard Development Company, L.P. Logic circuitry
US10894423B2 (en) 2018-12-03 2021-01-19 Hewlett-Packard Development Company, L.P. Logic circuitry
CA3121183A1 (en) 2018-12-03 2020-06-11 Hewlett-Packard Development Company, L.P. Logic circuitry
WO2020117843A1 (en) 2018-12-03 2020-06-11 Hewlett-Packard Development Company, L.P. Logic circuitry
DK3681723T3 (da) 2018-12-03 2021-08-30 Hewlett Packard Development Co Logisk kredsløb
PL3688636T3 (pl) 2018-12-03 2023-09-11 Hewlett-Packard Development Company, L.P. Zespół układów logicznych
CN113168451A (zh) 2018-12-03 2021-07-23 惠普发展公司,有限责任合伙企业 逻辑电路系统封装
US20210046760A1 (en) 2018-12-03 2021-02-18 Hewlett-Packard Development Company, L.P. Logic circuitry
CA3121147C (en) * 2018-12-03 2023-08-22 Hewlett-Packard Development Company, L.P. Logic circuitry
CN113168443A (zh) 2018-12-03 2021-07-23 惠普发展公司,有限责任合伙企业 逻辑电路系统
US11038749B2 (en) * 2018-12-24 2021-06-15 Intel Corporation Memory resource allocation in an end-point device
US11257543B2 (en) * 2019-06-25 2022-02-22 Stmicroelectronics International N.V. Memory management device, system and method
US11407229B2 (en) 2019-10-25 2022-08-09 Hewlett-Packard Development Company, L.P. Logic circuitry package
CN114063879B (zh) * 2020-07-31 2024-04-09 伊姆西Ip控股有限责任公司 用于处理操作命令的方法、电子设备和存储介质
CN114328358A (zh) * 2022-03-04 2022-04-12 山东华翼微电子技术股份有限公司 一种7位寻址模式i2c控制器访问任意容量存储器的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327640B1 (en) * 1997-03-07 2001-12-04 Advanced Micro Devices, Inc. Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller
US6148354A (en) * 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
CN1151415C (zh) * 2001-10-23 2004-05-26 深圳市朗科科技有限公司 电脑外部设备中附加存储功能的方法及其体系结构
US7334077B2 (en) * 2003-10-17 2008-02-19 Renesas Technology America, Inc. Method and apparatus for smart memory pass-through communication
US8135363B2 (en) * 2005-02-12 2012-03-13 Broadcom Corporation Method and system for an integrated circuit supporting auto-sense of voltage for drive strength adjustment
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US20070136501A1 (en) * 2005-12-08 2007-06-14 Chang Robert C Media card command pass through methods
CN101454746B (zh) 2006-05-29 2012-03-28 帕夏利斯·帕帕格利高利欧 一种以多功能存储卡通讯的方法
DE102006054025A1 (de) 2006-11-16 2008-05-21 Giesecke & Devrient Gmbh Datenspeichervorrichtung mit Zusatzfunktion
US20080293449A1 (en) * 2007-05-24 2008-11-27 Stephen Barlow Method and system for partitioning a device into domains to optimize power consumption
US20090077273A1 (en) * 2007-09-18 2009-03-19 Barinder Singh Rai Control Data Transfer

Also Published As

Publication number Publication date
TW201032054A (en) 2010-09-01
EP2426607A2 (en) 2012-03-07
US8386723B2 (en) 2013-02-26
WO2010093487A2 (en) 2010-08-19
WO2010093487A3 (en) 2010-12-16
EP2396728A2 (en) 2011-12-21
CN102301348A (zh) 2011-12-28
US20100205350A1 (en) 2010-08-12
EP2396728B1 (en) 2014-07-23
EP2426607A3 (en) 2012-03-28
CN102301348B (zh) 2014-10-15

Similar Documents

Publication Publication Date Title
EP2396728B1 (en) System and method of host request mapping
USRE47542E1 (en) Memory system in which extended function can easily be set
EP3049944B1 (en) Block storage apertures to persistent memory
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
JP6685651B2 (ja) 格納装置及びその動作方法
US20160034683A1 (en) Memory card and storage system having authentication program and method for operating thereof
US8904094B2 (en) Memory system in which extended function can easily be set
CN108701080B (zh) 使用参考值确保存储设备动作有效
US11294780B2 (en) Memory controller and operating method thereof
US11237954B2 (en) Controller and data storage system having the same
US20140297932A1 (en) Memory system in which extension function can easily be set
KR102424293B1 (ko) 스토리지 시스템 및 그것의 보안 쓰기 방지 수행 방법
US8930613B2 (en) Memory system in which extended function can easily be set
US20070198460A1 (en) USB storage system and control method thereof
KR102213665B1 (ko) 인증 프로그램을 갖는 메모리 카드, 그것을 포함하는 스토리지 시스템, 및 그것의 동작 방법
US20150242338A1 (en) Memory device and method enabling performance of special operations by application of memory device
KR20220045342A (ko) 호스트 장치, 데이터 저장 장치, 데이터 처리 시스템 및 데이터 처리 방법
CN112154410A (zh) 具有嵌入式地址分辨协议电路系统的功率管理集成电路
US20140013049A1 (en) Memory system in which extended function can easily be set
EP1818793A1 (en) USB storage system and control method thereof
KR20200069889A (ko) 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20120001694U (ko) 유에스비 통신 장치 및 그 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid