KR20170112855A - 스토리지 디바이스에서 논리 블록 어드레싱 액세스 퍼미션을 정의하는 방법 및 시스템 - Google Patents
스토리지 디바이스에서 논리 블록 어드레싱 액세스 퍼미션을 정의하는 방법 및 시스템 Download PDFInfo
- Publication number
- KR20170112855A KR20170112855A KR1020160062774A KR20160062774A KR20170112855A KR 20170112855 A KR20170112855 A KR 20170112855A KR 1020160062774 A KR1020160062774 A KR 1020160062774A KR 20160062774 A KR20160062774 A KR 20160062774A KR 20170112855 A KR20170112855 A KR 20170112855A
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- pcie
- access
- data
- function
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Human Computer Interaction (AREA)
- Automation & Control Theory (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
Abstract
데이터 스토리지 시스템에서 데이터 액세스 퍼미션(access permission)을 커스터마이징하는 방법 및 시스템이 제공된다. 상기 시스템은 기능 레벨에서 데이터 액세스 퍼미션을 정의하도록 하여, 상기 시스템의 스토리지 디바이스에 저장된 특정 데이터에 대해, 호스트에 존재하는 여러 기능들마다 서로 다른 데이터 액세스 퍼미션을 가질 수 있다.
Description
본 발명은 일반적으로 디지털 데이터 스토리지 시스템, 더욱 구체적으로는 SSD(Solid State Device)에 대한 다중 함수 레벨에서의 액세스 퍼미션(access permission)을 정의하는 것에 관한 것이다.
스토리지 시스템 기반 PCIe(Peripheral Component Interconnect Express) 버스는 매우 대중적이다. 높은 확장성 및 처리 속도를 제공하며, 수십 테라 바이트(Terra Bytes, TB)의 저장 공간을 지원하는 고 용량 디바이스를 생산할 수 있도록 한다.
스토리지 디바이스에 저장된 데이터는 여러 호스트들에 의해 액세스되어야 할 수 있다. 즉, 데이터는 여러 호스트들 사이에서 공유되어야 할 필요가 있을 수 있다. 기존의 일부 디바이스는 컴퓨팅 디바이스 및 이들의 호스팅되는 가상 머신이 연결될 수 있고, 공유된 디바이스 기능으로부터 서비스를 동시에 요청할 수 있도록 한다. PCIe 기술에서 이와 같은 디바이스는 "다기능 디바이스(multi-function device)"라고 불리운다.
데이터를 공유하는 것은 또한 보안 문제를 발생시킨다. 스토리지 디바이스는 다중 호스트에 대해 데이터를 공유하도록 설정될 수 있지만, 각각의 호스트가 액세스 가능한 데이터와, 각각의 호스트가 액세스되는 데이터를 이용하여 수행할 수 있는 액티비티의 종류를 정의하는 것 또한 중요하다. TCG(Trusted Computing Group)는 여러 호스트에 대해, READ/WRITE, ONLY READ, ONLY WRITE 및 NO ACCESS 중 적어도 하나로서 액세스 퍼미션을 정의할 수 있도록 하는 메커니즘을 제공한다. 또한, 데이터 액세스 기능 및 각각의 호스트가 액세스된 데이터에 대해 수행 가능한 액션은 해당 호스트에 대한 퍼미션 세트(permission set)에 따라 제한된다. 이에 따라 데이터 프라이버시 및 보안 문제를 해결한다.
그러나, TCG 및 기타 메커니즘은 호스트 레벨에서의 퍼미션을 정의할 수 있도록 한다. 호스트는 다중 기능을 포함하고, 데이터 액세스 요구조건은 각각의 호스트마다 다를 수 있다. 퍼미션은 호스트의 모든 PCIe 기능에 대해 공통적이므로, 어떤 PCIe 기능은 올바르기 기능하기 위해 필요한 퍼미션을 수신하지 못하고 종료될 수 있고, 어떤 다른 PCIe 기능은 불필요한 데이터를 액세스하면서 종료될 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 액세스 퍼미션을 정의하기 위한 TCG 범위 값을 정의하기 위한 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 다중 호스트가 TCG 범위를 사용하는 것을 허용하기 위한 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 TCG 범위에 대한 호스트 레벨 액세스를 허용하기 위한 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, TCG LBA 범위마다, PCIe 디바이스의 여러 기능에 대해 서로 다른 퍼미션을 정의하기 위한 것이다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 액세스 퍼미션을 커스터마이징하는 방법은, 호스트의 하나 이상의 PCIe(Peripheral Component Express, PCIe) 기능에 대해 스토리지 디바이스에 대한 액세스 퍼미션(access permission)을 커스터마이징하는 방법으로서, 스토리지 디바이스에 데이터에 대한 LBA(Logical Block Addressing) 범위를 정의하고, 정의된 LBA 범위에 대해, 하나 이상의 PCIe 기능에 대한 하나 이상의 록 상태(lock status)를 정의하고, 록 상태는 기능 특유적(function specific)이고, 정의된 록 상태에 기초하여, 호스트의 PCIe 기능에 대한 액세스 퍼미션을 결정하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 호스트의 PCIe 기능에 대한 액세스 퍼미션을 결정하는 것은, 상기 스토리지 디바이스에 의해, 상기 호스트의 PCIe 기능으로부터 데이터 액세스 요청을 수신하고, 상기 데이터 액세스 요청은 상기 LBA 범위를 명세하고, 상기 스토리지 디바이스에 의해, 상기 PCIe 기능에 대한, 상기 요청된 LBA 범위에 대응하는 록 상태를 검사하고, 상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하도록 하고, 상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하지 않으면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하는 것을 방지하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 액세스 퍼미션은 READ, WRITE, ONLY READ, ONLY WRITE 및 NO ACCESS 중 적어도 하나일 수 있다.
본 발명의 몇몇의 실시예에서, 상기 록 상태는, 상기 스토리지 디바이스의 하나 이상의 SFR(Special Function Register)에 저장될 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 스토리지 디바이스는, 호스트의 하나 이상의 PCIe(Peripheral Component Express, PCIe) 기능에 대해, 데이터에 대한 액세스 퍼미션(access permission)을 커스터마이징하는 스토리지 디바이스로서, 데이터는 스토리지 디바이스에 저장되고, 스토리지 디바이스는, 하드웨어 프로세서; 및 인스트럭션(instruction)을 포함하는 비휘발성 메모리를 포함하고, 인스트럭션은 하드웨어 프로세서로 하여금: 스토리지 디바이스에 의해, 스토리지 디바이스에 데이터에 대한 LBA(Logical Block Addressing) 범위를 정의하고, 스토리지 디바이스에 의해, 정의된 LBA 범위에 대해, 하나 이상의 PCIe 기능에 대한 하나 이상의 록 상태(lock status)를 정의하고, 록 상태는 기능 특유적(function specific)이고, 스토리지 디바이스에 의해, 정의된 록 상태에 기초하여, 호스트의 PCIe 기능에 대한 액세스 퍼미션을 결정하도록 하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 스토리지 디바이스는, 상기 스토리지 디바이스에 의해, 상기 호스트의 PCIe 기능으로부터 데이터 액세스 요청을 수신하고, 상기 데이터 액세스 요청은 상기 LBA 범위를 명세하고, 상기 스토리지 디바이스에 의해, 상기 PCIe 기능에 대한, 상기 요청된 LBA 범위에 대응하는 록 상태를 검사하고, 상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하도록 하고, 상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하지 않으면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하는 것을 방지함으로써, 상기 호스트의 상기 PCIe 기에 대한 액세스 퍼미션을 결정할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 스토리지 디바이스는, READ, WRITE, ONLY READ, ONLY WRITE 및 NO ACCESS 중 적어도 하나를 상기 액세스 퍼미션으로 설정할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 스토리지 디바이스는, 상기 록 상태를 하나 이상의 SFR(Special Function Register)에 저장할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 호스트의 여러 기능에 대한 선택적인 데이터 액세스 퍼미션을 허용하는 데이터 관리 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른, 데이터 관리 시스템에 의해, PCIe 기능 레벨에서 데이터 액세스 퍼미션을 할 수 있도록 하는 프로세스에 포함된 단계들을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따라 록 상태(lock status)가 LBA 범위에 대해 정의되는 것을 설명하기 위한 예시적인 도면이다.
도 2는 본 발명의 일 실시예에 따른, 데이터 관리 시스템에 의해, PCIe 기능 레벨에서 데이터 액세스 퍼미션을 할 수 있도록 하는 프로세스에 포함된 단계들을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따라 록 상태(lock status)가 LBA 범위에 대해 정의되는 것을 설명하기 위한 예시적인 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 호스트의 여러 기능에 대한 선택적인 데이터 액세스 퍼미션을 허용하는 데이터 관리 시스템의 블록도이다. 데이터 관리 시스템은 호스트(101) 및 스토리지 디바이스(102)를 포함한다. 주목할 점은 호스트 및 스토리지 디바이스의 수는 다양한 구현 표준에 따라, 그리고 필요에 따라 다양해질 수 있다는 점이다. 도 1은 오로지 설명을 위한 예시에 불과하다.
호스트(101)는 하나 이상의 스토리지 디바이스(102)와 통신하는 임의의 디바이스일 수 있다. 호스트(101)는 또한 스토리지 디바이스(102)에 저장된 하나 이상의 데이터에 액세스하는 것을 필요로 하는 하나 이상의 PCIe 기능을 수용할 수 있다. 호스트(101)는 또한 PCIe 기능이 스토리지 디바이스(102)로부터의 데이터 액세스를 요청한 다음, 스토리지 디바이스(102)로부터 데이터 액세스 퍼미션을 수신하여 필요한 데이터를 페치(fetch)하도록 할 수 있다.
스토리지 디바이스(102)는 데이터를 하나 이상의 미리 정해진 포맷으로 저장될 수 있게 하는 임의의 데이터 스토리지 시스템일 수 있다. 스토리지 디바이스(102)는 또한 데이터 저장을 위해 LBA(Logical Block Addressing)를 사용할 수 있도록, 그리고 저장된 데이터에 대응하는 LBA 범위를 정의하도록 설정될 수 있다. 스토리지 디바이스(102)는 또한 PCIe 기능 레벨에서 데이터 액세스 퍼미션을 정의하기 위한 하나 이상의 옵션을 제공할 수 있다. 스토리지 디바이스(102)는 또한 호스트(101)의 하나 이상의 PCIe 기능으로부터 데이터 요청을 수신하고, 대응하는 LBA 범위에 대해, 기능의 데이터 액세스 퍼미션을 검증할 수 있다. 스토리지 디바이스(102)는 또한, 스토리지 디바이스(102)에 정의되고 저장된 LBA 범위에 대응하는, 호스트(101)의 각각의 PCIe 기능에 대해 록 상태(lock status)를 정의할 수 있다. 스토리지 디바이스(102)는 또한, 미리 정의된 데이터 액세스 퍼미션에 기초하여, 데이터 액세스 요청을 허락 또는 거부할 수 있다.
도 2는 본 발명의 일 실시예에 따른, 데이터 관리 시스템에 의해, PCIe 기능 레벨에서 데이터 액세스 퍼미션을 할 수 있도록 하는 프로세스에 포함된 단계들을 설명하기 위한 흐름도이다. 스토리지 디바이스(102)는 호스트(101)의 PCIe 기능으로부터 데이터 액세스 요청을 수신(202)한다. 다음으로 스토리지 디바이스(102)는 수신된 데이터 액세스 요청을 검증(204)한다. 검증을 진행하는 동안, 스토리지 디바이스(102)는, 수신된 데이터 액세스 요청으로부터, 액세스가 기능에 의해 요청되는 데이터에 대응하는 LBA 범위를 식별한다. 스토리지 디바이스(102)는 또한, 식별된 LBA 범위에 대해, 그 특정 PCIe 기능에 대해 정의된 록 상태를 검사한다. 록 상태는 데이터 액세스 퍼미션을 정의한다. 예를 들어, 도 3을 참조하면, 예시적인 특정 시나리오에서, 록 상태의 값 '1'은 퍼미션이 허락되었음을 나타내고, 값 '0'은 퍼미션이 거부되었음을 나타낸다. 여러가지 값에 대응하는 스토리지 퍼미션은 미리 정의되어 있다.
만일 PCIe 기능에 대한 록 상태의 값이, 요청된 LBA 범위에 대해, PCIe 기능이 데이터를 액세스할 수 있음을 나타낸다면, 스토리지 디바이스(102)는 데이터 액세스 퍼미션(208)을 허락한다. 만일 PCIe 기능에 대한 록 상태의 값이, 요청된 LBA 범위에 대해, PCIe 기능이 데이터를 액세스할 수 없음을 나타낸다면, 스토리지 디바이스(102)는 데이터 액세스 퍼미션을 거부(210)한다. 본 실시예에서, 데이터 액세스 퍼미션은, 스토리지 디바이스(102)의 동일한 LBA 범위에 대해, 호스트(101)의 여러 가지 기능에 따라 달라질 수 있다.
방법(200)의 다양한 동작들은 도시된 바와 같은 순서로 수행될 수도 있고, 이와 다른 순서로 수행되거나, 동시에 수행될 수도 있다. 또한, 본 발명의 몇몇의 실시예에서, 도 2에 도시된 일부 동작들은 생략될 수 있다.
본 명세서에 개시된 실시예들은 하나 이상의 하드웨어 디바이스 상에서 실행되고, 네트워크 요소들을 제어하기 위한 네트워크 관리 기능을 수행하는 하나 이상의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1에 도시된 네트워크 요소는 하나 이상의 하드웨어 디바이스, 또는 하드웨어 디바이스와 소프트웨어 모듈의 결합이 될 수 있는 블록을 포함한다.
본 명세서에 개시된 실시예들은 기능 레벨에서 데이터 액세스 퍼미션을 정의하는 메커니즘을 개시한다. 상기 메커니즘은 호스트 또는 다중 호스트의 여러 가지 PCIe 기능에 대한 서로 다른 데이터 액세스 퍼미션을 할 수 있도록 하고, 그 시스템을 제공한다. 따라서, 본 발명의 보호 범위는 이와 같은 시스템에까지 확장되며, 확장에 의해, 내부에 메시지를 포함하는 컴퓨터로 판독 가능한 수단에까지 확장된다. 여기서 컴퓨터로 판독 가능한 수단은, 서버 또는 모바일 디바이스 또는 임의의 적절한 프로그램 가능한 디바이스 상에서 실행되는 경우, 상기 방법의 하나 이상의 단계들을 구현하기 위한 프로그램 코드를 포함한다. 상기 방법은, 예컨대, VHDL(Very high speed integrated circuit Hardware Description Language) 또는 다른 프로그래밍 언어로 작성된 소프트웨어 프로그램과 함께, 시스템을 이용하는 바람직한 실시예로 구현되거나, 하나 이상의 VHDL 또는 하나 이상의 하드웨어 디바이스 상에서 실행되는 몇몇의 소프트웨어 모듈에 의해 구현된다. 하드웨어 디바이스는, 예컨대, 서버 또는 개인용 컴퓨터 등과 같은 임의의 종류의 컴퓨터 또는 그 임의의 조합, 예컨대, 1 개의 프로세서 및 2 개의 FPGA들을 포함하는 프로그램 가능한 임의의 종류의 디바이스일 수 있다. 상기 디바이스는 또한, 예컨대 ASIC과 같은 하드웨어 수단 또는 하드웨어, 소프트웨어 수단, ASIC 및 FPGA의 조합, 또는 하나 이상의 마이크로프로세서 및 내부에 소프트웨어 모듈이 포함된 하나 이상의 메모리가 될수 있는 수단들을 포함할 수 있다. 따라서, 상기 수단은 하나 이상의 하드웨어 수단 또는 하나 이상의 하드웨어 겸 소프트웨어 수단일 수 있다. 본 명세서에서 설명된 방법 실시예들은 순전히 하드웨어로, 또는 일부는 하드웨어로 일부는 소프트웨어로 구현될 수 있다. 이와 다르게, 실시예들은, 예컨대 복수의 CPU를 이용하는, 여러 하드웨어 디바이스 상에 구현될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 데이터 관리 시스템
101: 호스트
102: 스토리지 디바이스
101: 호스트
102: 스토리지 디바이스
Claims (8)
- 호스트의 하나 이상의 PCIe(Peripheral Component Express, PCIe) 기능에 대해 스토리지 디바이스에 대한 액세스 퍼미션(access permission)을 커스터마이징하는 방법으로서,
상기 스토리지 디바이스에 데이터에 대한 LBA(Logical Block Addressing) 범위를 정의하고,
상기 정의된 LBA 범위에 대해, 상기 하나 이상의 PCIe 기능에 대한 하나 이상의 록 상태(lock status)를 정의하고, 상기 록 상태는 기능 특유적(function specific)이고,
상기 정의된 록 상태에 기초하여, 상기 호스트의 PCIe 기능에 대한 액세스 퍼미션을 결정하는 것을 포함하는, 액세스 퍼미션을 커스터마이징하는 방법. - 제1항에 있어서,
상기 호스트의 PCIe 기능에 대한 액세스 퍼미션을 결정하는 것은,
상기 스토리지 디바이스에 의해, 상기 호스트의 PCIe 기능으로부터 데이터 액세스 요청을 수신하고, 상기 데이터 액세스 요청은 상기 LBA 범위를 명세하고,
상기 스토리지 디바이스에 의해, 상기 PCIe 기능에 대한, 상기 요청된 LBA 범위에 대응하는 록 상태를 검사하고,
상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하도록 하고,
상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하지 않으면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하는 것을 방지하는 것을 포함하는, 액세스 퍼미션을 커스터마이징하는 방법. - 제1항에 있어서,
상기 액세스 퍼미션은 READ, WRITE, ONLY READ, ONLY WRITE 및 NO ACCESS 중 적어도 하나인, 액세스 퍼미션을 커스터마이징하는 방법. - 제1항에 있어서,
상기 록 상태는, 상기 스토리지 디바이스의 하나 이상의 SFR(Special Function Register)에 저장되는, 액세스 퍼미션을 커스터마이징하는 방법. - 호스트의 하나 이상의 PCIe(Peripheral Component Express, PCIe) 기능에 대해, 데이터에 대한 액세스 퍼미션(access permission)을 커스터마이징하는 스토리지 디바이스로서,
상기 데이터는 상기 스토리지 디바이스에 저장되고,
상기 스토리지 디바이스는,
하드웨어 프로세서; 및
인스트럭션(instruction)을 포함하는 비휘발성 메모리를 포함하고,
상기 인스트럭션은 상기 하드웨어 프로세서로 하여금:
상기 스토리지 디바이스에 의해, 상기 스토리지 디바이스에 상기 데이터에 대한 LBA(Logical Block Addressing) 범위를 정의하고,
상기 스토리지 디바이스에 의해, 상기 정의된 LBA 범위에 대해, 상기 하나 이상의 PCIe 기능에 대한 하나 이상의 록 상태(lock status)를 정의하고, 상기 록 상태는 기능 특유적(function specific)이고,
상기 스토리지 디바이스에 의해, 상기 정의된 록 상태에 기초하여, 상기 호스트의 PCIe 기능에 대한 액세스 퍼미션을 결정하도록 하는 것을 포함하는, 스토리지 디바이스. - 제5항에 있어서,
상기 스토리지 디바이스는,
상기 스토리지 디바이스에 의해, 상기 호스트의 PCIe 기능으로부터 데이터 액세스 요청을 수신하고, 상기 데이터 액세스 요청은 상기 LBA 범위를 명세하고,
상기 스토리지 디바이스에 의해, 상기 PCIe 기능에 대한, 상기 요청된 LBA 범위에 대응하는 록 상태를 검사하고,
상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하도록 하고,
상기 스토리지 디바이스에 의해, 만일 상기 록 상태가 상기 데이터 액세스를 허용하지 않으면, 상기 PCIe 기능이 상기 LBA 범위에 액세스하는 것을 방지함으로써, 상기 호스트의 상기 PCIe 기에 대한 액세스 퍼미션을 결정하는 스토리지 디바이스. - 제5항에 있어서,
상기 스토리지 디바이스는, READ, WRITE, ONLY READ, ONLY WRITE 및 NO ACCESS 중 적어도 하나를 상기 액세스 퍼미션으로 설정하는 스토리지 디바이스. - 제5항에 있어서,
상기 스토리지 디바이스는, 상기 록 상태를 하나 이상의 SFR(Special Function Register)에 저장하는 스토리지 디바이스.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201641010888 | 2016-03-29 | ||
IN201641010888 | 2016-03-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170112855A true KR20170112855A (ko) | 2017-10-12 |
Family
ID=59962263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160062774A KR20170112855A (ko) | 2016-03-29 | 2016-05-23 | 스토리지 디바이스에서 논리 블록 어드레싱 액세스 퍼미션을 정의하는 방법 및 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170286325A1 (ko) |
KR (1) | KR20170112855A (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102498319B1 (ko) * | 2018-06-04 | 2023-02-08 | 삼성전자주식회사 | 반도체 장치 |
CN113342714B (zh) * | 2020-03-02 | 2023-07-25 | 群联电子股份有限公司 | 存储器存储装置与其管理方法 |
US12026102B2 (en) * | 2022-09-07 | 2024-07-02 | Micron Technology, Inc. | Isolating functions in a memory device |
-
2016
- 2016-05-23 KR KR1020160062774A patent/KR20170112855A/ko unknown
- 2016-12-28 US US15/392,273 patent/US20170286325A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170286325A1 (en) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10235097B2 (en) | Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller | |
CN108027779B (zh) | 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、***和指令 | |
US20210165883A1 (en) | Artificial intelligence ai processing method and ai processing apparatus | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
US11847225B2 (en) | Blocking access to firmware by units of system on chip | |
US9183391B2 (en) | Managing device driver cross ring accesses | |
US10083129B2 (en) | Code loading hardening by hypervisor page table switching | |
US8561064B2 (en) | Retaining ownership of a virtual function while an adapter is replaced | |
US11507285B1 (en) | Systems and methods for providing high-performance access to shared computer memory via different interconnect fabrics | |
US9536075B2 (en) | Dynamic resource sharing | |
US11175839B1 (en) | Independently configurable remapping for interconnect access requests | |
US10831915B2 (en) | Method and system for isolating application data access | |
JP7213879B2 (ja) | 間接アクセスメモリコントローラ用のメモリ保護装置 | |
JP2016516228A (ja) | システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置 | |
US20220092223A1 (en) | Technologies for filtering memory access transactions received from one or more i/o devices | |
US20210200689A1 (en) | Storage System and Method for Secure Host Controller Memory Buffer Access | |
US20190228159A1 (en) | Technologies for filtering memory access transactions received from one or more accelerators via coherent accelerator link | |
KR20170112855A (ko) | 스토리지 디바이스에서 논리 블록 어드레싱 액세스 퍼미션을 정의하는 방법 및 시스템 | |
US10437523B2 (en) | Secure receive packet processing for network function virtualization applications | |
US20190235773A1 (en) | Concept for accessing computer memory of a memory pool | |
KR20170138412A (ko) | 장치의 시스템 온 칩의 보안 모듈로의 복수의 액세스를 관리하기 위한 디바이스 | |
EP2983088A1 (en) | Memory protection unit | |
CN114117396A (zh) | Docker容器内的移动设备访问控制方法及装置 | |
TW202418133A (zh) | 用於容許安全通訊之積體電路、方法及電腦系統 | |
EP2801026A1 (en) | Substitute virtualized-memory page tables |