KR20240074611A - Method and electronic device for manufacturing storage device - Google Patents
Method and electronic device for manufacturing storage device Download PDFInfo
- Publication number
- KR20240074611A KR20240074611A KR1020230004055A KR20230004055A KR20240074611A KR 20240074611 A KR20240074611 A KR 20240074611A KR 1020230004055 A KR1020230004055 A KR 1020230004055A KR 20230004055 A KR20230004055 A KR 20230004055A KR 20240074611 A KR20240074611 A KR 20240074611A
- Authority
- KR
- South Korea
- Prior art keywords
- storage space
- data
- electronic device
- state
- memory
- Prior art date
Links
- 238000003860 storage Methods 0.000 title claims abstract description 542
- 238000000034 method Methods 0.000 title claims abstract description 242
- 238000004519 manufacturing process Methods 0.000 title description 29
- 230000008569 process Effects 0.000 claims abstract description 197
- 230000004044 response Effects 0.000 claims abstract description 76
- 230000008859 change Effects 0.000 claims abstract description 19
- 238000012790 confirmation Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 126
- 230000005012 migration Effects 0.000 claims description 42
- 238000013508 migration Methods 0.000 claims description 42
- 238000012360 testing method Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 230000003213 activating effect Effects 0.000 claims description 9
- 238000004891 communication Methods 0.000 description 55
- 238000005476 soldering Methods 0.000 description 16
- 230000006378 damage Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 12
- 230000007547 defect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000003685 thermal hair damage Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000020169 heat generation Effects 0.000 description 3
- 230000000638 stimulation Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000010287 polarization Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F3/0658—Controller construction arrangements
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0653—Monitoring storage devices or systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
다양한 실시예에 따르면, 저장 장치는, 제 1 비트의 데이터가 저장되는 제 1 저장 공간 및 상기 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간을 포함하는 제 1 메모리, 상태 정보가 저장되는 제 2 메모리, 및 제 1 메모리 및 제 2 메모리에 작동적으로 연결된 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는 제 2 메모리에 저장된 상태 정보를 기반으로, 저장 장치에서 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다. 메모리 컨트롤러는 PSA 인터페이스의 지원 확인에 응답하여, 상태 정보를 제 1 상태로 변경할 수 있다. 메모리 컨트롤러는 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리의 제 1 저장 공간에 저장할 수 있다. 메모리 컨트롤러는 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경할 수 있다. 메모리 컨트롤러는 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간에 저장된 데이터를 제 2 저장 공간으로 마이그레이션할 수 있다. 그 밖에 다양한 실시예들이 가능할 수 있다.According to various embodiments, a storage device includes a first memory including a first storage space in which a first bit of data is stored and a second storage space in which a second bit or more of data other than the first bit is stored. It may include a second memory in which information is stored, and a memory controller operatively connected to the first memory and the second memory. The memory controller may check whether the storage device supports the PSA interface based on the status information stored in the second memory. The memory controller may change the state information to the first state in response to confirmation of support of the PSA interface. In response to the status information being in the first state, the memory controller may store data downloaded from the external electronic device in the first storage space of the first memory. The memory controller may change the state information to the second state in response to completion of the process corresponding to the downloaded data. The memory controller may migrate data stored in the first storage space to the second storage space in response to the state information being in the second state. Various other embodiments may be possible.
Description
다양한 실시예들은 저장 장치를 제조하는 방법 및 전자 장치에 관한 것이다.Various embodiments relate to methods of manufacturing storage devices and electronic devices.
최근 정보통신 기술과 반도체 기술 등의 눈부신 발전에 힘입어 전자 장치(예: 휴대용 단말 장치, 스마트폰)의 보급과 이용이 급속도로 증가하고 있으며, 현대인의 필수품이 되고 있다. 전자 장치는 사용자들이 필요로 하는 다양한 기능(예: 이동 통신 기능, 근거리 무선 통신 기능, 방송 수신 기능, 인터넷 접속 기능)을 제공하고 있다.Recently, thanks to remarkable developments in information and communication technology and semiconductor technology, the spread and use of electronic devices (e.g. portable terminal devices, smartphones) are rapidly increasing and have become a necessity for modern people. Electronic devices provide various functions required by users (e.g., mobile communication function, short-range wireless communication function, broadcast reception function, Internet access function).
전자 장치는 데이터(data)를 보관하기 위한 저장 장치(예: 낸드 플래시 메모리(NAND Flash memory))가 포함될 수 있다. 예를 들어, 저장 장치는 Host와 NAND Flash memory간의 인터페이스(interface) 규약에 따라 eMMC (embedded Multimedia Card), UFS (Universal Flash Storage), SSD(Solid State Drive) 장치로 분류 될 수 있다. 전자 장치가 제조되는 공정에 있어서, 저장 장치에는 전자 장치를 운영 시키기 위한 데이터(예: S/W binary)가 저장될 수 있다. Electronic devices may include a storage device (eg, NAND flash memory) for storing data. For example, storage devices can be classified into eMMC (embedded multimedia card), UFS (Universal Flash Storage), and SSD (Solid State Drive) devices according to the interface protocol between the host and NAND Flash memory. In the process of manufacturing an electronic device, data (e.g., S/W binary) for operating the electronic device may be stored in a storage device.
상술한 정보는 본 개시에 대한 이해를 돕기 위한 목적으로 하는 배경 기술로 제공될 수 있다. 상술한 내용 중 어느 것도 본 개시와 관련하여 종래 기술(prior art)로서 적용될 수 있는지에 관해서는 어떠한 주장이나 결정이 제기되지 않는다.The above information may be provided as background technology for the purpose of aiding understanding of the present disclosure. No claim or determination is made as to whether any of the foregoing may apply as prior art with respect to the present disclosure.
통상적으로 전자 장치를 제조하는 공정에 있어서, 열이 발생되는 공정이 포함될 수 있다. 예를 들어, 저장 장치 및 기타 장치들(예: 부품들)이 인쇄 회로 기판(printed circuit board, PCB)에 실장되는 제조 공정(예: SMD(Surface Mount Device)) 시, 열이 발생할 수 있다. 예를 들어, 제조 공정이 변경되는 상황 및 상기 제조 공정 상 불량이 발생되는 상황으로 인해, 재 작업이 발생될 수 있고, 재 작업 시, 열이 발생될 수 있다.Typically, in the process of manufacturing an electronic device, a process that generates heat may be included. For example, heat may be generated during a manufacturing process (e.g., Surface Mount Device (SMD)) in which storage devices and other devices (e.g., components) are mounted on a printed circuit board (PCB). For example, due to a situation in which the manufacturing process is changed and a defect occurs in the manufacturing process, rework may occur, and heat may be generated during rework.
전자 장치의 제조 공정에 있어서, 열이 발생하게 되면, 저장 장치에 저장된 데이터가 손상되거나, 또는 배드 블록(예: runtime bad block)이 증가할 수 있다. 이로 인해, 전자 장치의 성능이 저하되거나, 전자 장치가 오동작하는 문제가 발생할 수 있다.In the manufacturing process of electronic devices, if heat is generated, data stored in the storage device may be damaged or bad blocks (eg, runtime bad blocks) may increase. As a result, the performance of the electronic device may deteriorate or the electronic device may malfunction.
일 실시예에 따르면, 전자 장치는 제조 공정 정보(예: 제조 프로세스)를 활용하여, 저장 장치와 관련된 제어 정보를 저장 장치에 전달할 수 있고, 저장 장치 제어부의 제어 하에, 열이 발생하는 제조 공정 과정에서 저장 장치에 저장된 데이터의 손상을 방지할 수 있다.According to one embodiment, the electronic device may utilize manufacturing process information (e.g., manufacturing process) to transmit control information related to the storage device to the storage device, and under the control of the storage device controller, the manufacturing process process in which heat is generated. You can prevent damage to data stored on the storage device.
본 개시의 다양한 실시예들은, 제조 공정 중에 발생되는 열로 인해, 저장 장치에 저장된 데이터가 손실되는 상황을 방지하기 위한 전자 장치를 제공하고자 한다.Various embodiments of the present disclosure seek to provide an electronic device to prevent data stored in a storage device from being lost due to heat generated during a manufacturing process.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 문서에 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical challenges sought to be achieved in this document are not limited to the technical challenges mentioned above, and other technical challenges not mentioned can be clearly understood by those skilled in the art of this document from the description below. There will be.
일 실시예에 따르면, 저장 장치는, 제 1 비트의 데이터가 저장되는 제 1 저장 공간 및 상기 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간을 포함하는 제 1 메모리, 상태 정보가 저장되는 제 2 메모리, 및 제 1 메모리 및 제 2 메모리에 작동적으로 연결된 메모리 컨트롤러를 포함할 수 있다. 메모리 컨트롤러는 제 2 메모리에 저장된 상태 정보를 기반으로, 저장 장치에서 PSA(product state awareness) 인터페이스를 지원하는지 여부를 확인할 수 있다. 메모리 컨트롤러는 PSA 인터페이스의 지원 확인에 응답하여, 상태 정보를 제 1 상태로 변경할 수 있다. 메모리 컨트롤러는 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리의 제 1 저장 공간에 저장할 수 있다. 메모리 컨트롤러는 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경할 수 있다. 메모리 컨트롤러는 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간에 저장된 데이터를 제 2 저장 공간으로 마이그레이션할 수 있다. According to one embodiment, the storage device includes a first memory including a first storage space in which a first bit of data is stored and a second storage space in which a second or more bit of data other than the first bit is stored. It may include a second memory in which information is stored, and a memory controller operatively connected to the first memory and the second memory. The memory controller may check whether the storage device supports a product state awareness (PSA) interface based on the state information stored in the second memory. The memory controller may change the state information to the first state in response to confirmation of support of the PSA interface. In response to the status information being in the first state, the memory controller may store data downloaded from the external electronic device in the first storage space of the first memory. The memory controller may change the state information to the second state in response to completion of the process corresponding to the downloaded data. The memory controller may migrate data stored in the first storage space to the second storage space in response to the state information being in the second state.
일 실시예에 따른 저장 장치의 동작 방법에 있어서, 제 1 비트의 데이터가 저장되는 제 1 저장 공간(231) 및 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(232)을 포함하는 제 1 메모리(230) 및 상태 정보가 저장되는 제 2 메모리 중 제 2 메모리에 저장된 상태 정보를 기반으로, 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부를 확인하는 동작, PSA 인터페이스의 지원 확인에 상태 정보를 제 1 상태로 변경하는 동작, 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작, 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경하는 동작, 및 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션하는 동작을 포함할 수 있다.In a method of operating a storage device according to an embodiment, a
일 실시예에 따르면, 하나 이상의 프로그램을 저장하는 비일시적인 컴퓨터 판독가능 저장 매체(또는, 컴퓨터 프로그램 제품(product))가 기술될 수 있다. 일 실시예에 따르면, 하나 이상의 프로그램들은, 전자 장치의 프로세서에 의해 실행될 시, 제 1 비트의 데이터가 저장되는 제 1 저장 공간(231) 및 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(232)을 포함하는 제 1 메모리(230) 및 상태 정보가 저장되는 제 2 메모리 중 제 2 메모리에 저장된 상태 정보를 기반으로, 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부를 확인하는 동작, PSA 인터페이스의 지원 확인에 상태 정보를 제 1 상태로 변경하는 동작, 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작, 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경하는 동작, 및 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션하는 동작을 수행하는 명령어들을 포함할 수 있다.According to one embodiment, a non-transitory computer-readable storage medium (or computer program product) storing one or more programs may be described. According to one embodiment, when one or more programs are executed by a processor of an electronic device, a
일 실시예에 따르면, 전자 장치는 저장 장치에 제조 공정과 관련된 정보를 제공할 수 있고, 저장 장치 제어부의 제어 하에, 열로 인한 데이터 손상을 방지할 수 있다. 예를 들어, 저장 장치 제어부는 열이 발생되는 공정을 수행하기 전에, 데이터를 열에 강한 저장 공간으로 이동시킬 수 있다.According to one embodiment, the electronic device can provide information related to the manufacturing process to the storage device and prevent data damage due to heat under the control of the storage device controller. For example, the storage device controller may move data to a heat-resistant storage space before performing a process that generates heat.
일 실시예에 따르면, 열에 의한 데이터 손상을 방지하기 위해, 데이터를 열에 강한 저장 공간으로 이동함에 따라, 데이터의 쓰기 성능이 향상될 수 있고, 제조 공정에 따른 불량률이 감소할 수 있다. 일 실시예에 따르면, 전자 장치 및 저장 장치와 관련된 생산성이 증가할 수 있다.According to one embodiment, in order to prevent data damage due to heat, by moving data to a heat-resistant storage space, data writing performance can be improved and the defect rate due to the manufacturing process can be reduced. According to one embodiment, productivity associated with electronic devices and storage devices may increase.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained from the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. will be.
도면의 설명과 관련하여, 동일 또는 유사한 구성 요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
도 1은 본 개시의 일 실시예들에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치에 포함된 프로세서 및 저장 장치에 대한 블록도이다.
도 3은 본 개시의 일 실시예에 따른 전자 장치의 상태 정보를 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 1 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 전자 장치의 상태 정보를 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 2 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 전자 장치의 상태 정보를 기반으로 데이터를 마이그레이션하는 공정 프로세스를 도시한 예시도이다.
도 6은 본 개시의 일 실시예에 따른 write booster 기능을 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 1 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 write booster 기능을 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 2 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 write booster 기능을 기반으로 데이터를 마이그레이션하는 공정 프로세스를 도시한 예시도이다.In relation to the description of the drawings, identical or similar reference numerals may be used for identical or similar components.
1 is a block diagram of an electronic device in a network environment according to embodiments of the present disclosure.
Figure 2 is a block diagram of a processor and a storage device included in an electronic device according to an embodiment of the present disclosure.
FIG. 3 is a first flowchart illustrating a method of migrating data based on status information of an electronic device according to an embodiment of the present disclosure.
FIG. 4 is a second flowchart illustrating a method of migrating data based on status information of an electronic device according to an embodiment of the present disclosure.
FIG. 5 is an exemplary diagram illustrating a process for migrating data based on status information of an electronic device according to an embodiment of the present disclosure.
FIG. 6 is a first flowchart illustrating a method of migrating data based on the write booster function according to an embodiment of the present disclosure.
FIG. 7 is a second flowchart illustrating a method of migrating data based on the write booster function according to an embodiment of the present disclosure.
Figure 8 is an example diagram illustrating a process for migrating data based on the write booster function according to an embodiment of the present disclosure.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.1 is a block diagram of an
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.The
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서(image signal processor) 또는 커뮤니케이션 프로세서(communication processor, CP)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.The
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.The
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다. The
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.The
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다. The
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.The
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.The
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.The
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.The
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서(communication processor, CP)를 포함할 수 있다. 일 실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제 2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.The
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나, 제 1 안테나, 제 2 안테나)을 포함할 수 있다. 예를 들어, 제 1 안테나는 선형 편파 방식을 기반으로, 제 1 방향에 따른 제 1 안테나 신호를 생성할 수 있고, 제 2 안테나는 선형 편파 방식을 기반으로, 상기 제 1 방향과는 상이한, 제 2 방향에 따른 제 2 안테나 신호를 생성할 수 있다. 예를 들어, 제 1 안테나 신호와 제 2 안테나 신호는 상호 간에 직각 방향으로 구현될 수 있다. 제 1 안테나 신호가 x축 방향에 따른 통신 신호라면, 제 2 안테나 신호는 y축 방향에 따른 통신 신호를 포함할 수 있다. The
일 실시예에 따르면, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.According to one embodiment, at least one antenna suitable for a communication method used in a communication network such as the
다양한 실시예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.According to various embodiments, the
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.At least some of the components are connected to each other through a communication method between peripheral devices (e.g., bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) and signal ( (e.g. commands or data) can be exchanged with each other.
일 실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제 2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.According to one embodiment, commands or data may be transmitted or received between the
도 2는 본 개시의 일 실시예에 따른 전자 장치에 포함된 프로세서 및 저장 장치에 대한 블록도이다.Figure 2 is a block diagram of a processor and a storage device included in an electronic device according to an embodiment of the present disclosure.
일 실시예들에 따르면, 도 2의 전자 장치(201)는 도 1의 전자 장치(101)와 적어도 일부 유사하거나, 전자 장치(210)의 다른 실시예들을 포함할 수 있다. 도 2의 프로세서(210)는 도 1의 프로세서(120)와 적어도 일부 유사하거나, 프로세서(210)의 다른 실시예들을 포함할 수 있다. 도 2의 저장 장치(220)는 도 1의 메모리(130)와 적어도 일부 유사하거나, 저장 장치(220)의 다른 실시예들을 포함할 수 있다.According to some embodiments, the
도 2를 참조하면, 전자 장치(201)(예: 도 1의 전자 장치(101))는 DRAM(dynamic random access memory)(205)(예: 임시 기억 장치), 프로세서(210)(예: AP(application processor), 호스트(host)), 및 저장 장치(UFS(universal flash storage))(220)를 포함할 수 있다. 프로세서(210)는 DRAM(205) 및 저장 장치(220)에 저장된 데이터(예: 바이너리 데이터)를 활용할 수 있다.Referring to FIG. 2, the electronic device 201 (e.g., the
일 실시예에 따르면, 프로세서(210)는 DRAM(205) 및 저장 장치(220)에 저장된 데이터를 로딩하거나, 또는, 저장 장치(220)에 데이터를 저장할 수 있다. 프로세서(210)는 전자 장치(101)에 포함된 다른 구성 요소들(예: 하드웨어 및/또는 소프트웨어 구성요소)을 적어도 부분적으로 제어할 수 있고, 다양한 데이터 처리 및/또는 연산을 수행할 수 있다. 일 실시예에 따르면, 프로세서(210)는 DRAM(205) 및 저장 장치(220)와 작동적으로(operatively), 기능적으로(functionally) 및/또는 전기적으로(electrically) 연결될 수 있다.According to one embodiment, the
도 2를 참조하면, 프로세서(210)는 SOC(system on chip) 형태로, 저장 장치(220)를 제어하기 위한 호스트 컨트롤러(host controller)(211)를 포함할 수 있다. 예를 들어, 프로세서(210)는 전자 장치(101)에 포함된 구성 요소들, 각각에 대응되는 호스트 장치를 포함할 수도 있다. 호스트 컨트롤러(211)는 프로세서(210)와 DRAM(205) 및 저장 장치(220) 간의 작동적 연결에 응답하여, 데이터를 DRAM(205) 및 저장 장치(220)에 저장하거나, 또는, DRAM(205) 및 저장 장치(220)에 저장된 데이터를 로딩할 수 있다.Referring to FIG. 2 , the
도 2를 참조하면, 전자 장치(101)는 적어도 하나의 바이너리 데이터(예: 제 1 바이너리(212), 제 2바이너리(213), 및/또는 제 3 바이너리(214))를 저장하기 위한 DRAM(205)(예: 임시 기억 장치, 임시 저장 공간, 임시 저장 영역)을 포함할 수 있다. 예를 들어, 제 1 바이너리(212)는 eDL 바이너리(eDL binary)를 포함할 수 있고, 제 2 바이너리(213)는 부트로더(bootloader)를 포함할 수 있고, 제 3 바이너리(214)는 커널 바이너리(kernel binary)를 포함할 수 있다. 제 1 바이너리(212), 제 2바이너리(213), 및/또는 제 3 바이너리(214) 중 적어도 하나는 저장 장치(220)의 초기화 및 저장 장치(220)에 대한 데이터 읽기 및 쓰기를 위한 호스트 컨트롤러(211)를 동작시킬 수 있는 프로그램을 포함할 수 있다. 예를 들어, 제 2 바이너리(213)(예: 부트로더)는 전자 장치(101)를 부팅하는 과정에서, 운영체제(OS, operating system)가 실행되기 전에, 제 3 바이너리(예: 커널 바이너리)를 기반으로 부팅과 관련된 작업을 수행하는 프로그램을 포함할 수 있다.Referring to FIG. 2, the
일 실시예에 따르면, 제 1 바이너리(212)(예: eDL 바이너리)는 외부 전자 장치(예: 도 1의 전자 장치(102, 104), PC(personal computer))로부터 다운로드된 소프트웨어 바이너리(SW binary)를 포함할 수 있다. 프로세서(120)는 제 1 바이너리(212)를 DRAM(205)의 일부 영역에 저장할 수 있다. 프로세서(210)는 연결 단자(예: 도 1의 연결 단자(178), USB 인터페이스)를 통해 연결된 외부 전자 장치로부터 소프트웨어 바이너리를 다운로드할 수 있고, 상기 소프트웨어 바이너리를 제 1 바이너리(212)로 DRAM(205)에 저장할 수 있다. 프로세서(210)는 다운로드된 소프트웨어 바이너리를 기반으로 저장 장치(220)를 초기화할 수 있다. According to one embodiment, the first binary 212 (e.g., eDL binary) is a software binary (SW binary) downloaded from an external electronic device (e.g., the
일 실시예에 따르면, 프로세서(210)는 전자 장치(101)의 부팅 시, 제 2 바이너리(213)(예: 부트로더)를 기반으로 전자 장치(101)를 초기화하거나, 또는 제 3 바이너리(214)(예: 커널 바이너리)를 기반으로 운영체제(OS)의 운영과 관련된 작업을 수행할 수 있다.According to one embodiment, when the
도 2를 참조하면, 저장 장치(220)는 고속 serial 통신 규약을 기반으로 설계된 UFS(universal flash storage)(220)를 포함할 수 있다. 도 2를 참조하면, 저장 장치(220)는 저장 장치(220)를 적어도 부분적으로 제어하기 위한 저장 장치 제어부(storage device controller)(221) 및 데이터를 저장하기 위한 NAND 저장부(NAND storage)(230)(예: SLC(single level cell)(231), MLC(multi level cell)/TLC(triple level cell)/QLC(quad level cell)(232))를 포함할 수 있다.Referring to FIG. 2, the
일 실시예에 따르면, 저장 장치 제어부(221)는 저장 장치(220)에 포함된 구성부들을 적어도 부분적으로 제어 및 관리할 수 있다. 저장 장치 제어부(221)는 프로세서(210)로부터 전달되는 명령어(command)(예: 바이너리 데이터)를 처리할 수 있고, 저장 장치(220)와 관련된 동작들을 제어할 수 있다. 예를 들어, 저장 장치 제어부(221)는 SLC(231)(예: 제 1 저장 공간) 및 MLC/TLC/QLC(232)(예: 제 2 저장 공간)에 데이터(예: 바이너리 데이터, 공정 바이너리)를 저장하거나, 또는 저장된 데이터를 로딩할 수 있다. 예를 들어, 저장 장치 제어부(221)는 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션(migration)하거나, 또는 제 2 저장 공간(232)에 저장된 데이터를 제 1 저장 공간(231)으로 마이그레이션할 수 있다.According to one embodiment, the storage
일 실시예에 따르면, 제 1 저장 공간(231)은 NAND 저장부(230)의 SLC(single level cell) 영역을 포함할 수 있고, 상대적으로 제 2 저장 공간(232) 보다 빠른 속도로 데이터가 읽히거나, 또는 쓰여질 수 있다. 예를 들어, 제 1 저장 공간(231)은 적어도 하나의 셀로 구성되며, 하나의 셀당 약 1비트의 데이터를 저장할 수 있다. 제 1 저장 공간(231)은 제 1 비트의 데이터가 저장되는, 복수 개의 셀들로 구성될 수 있다. 일 실시예에 따르면, 제 2 저장 공간(232)은 NAND 저장부(230)의 MLC(multi level cell) 영역, TLC(triple level cell) 영역, 및 QLC(quad level cell) 영역 중 적어도 하나를 포함할 수 있고, 상대적으로 제 1 저장 공간(231) 보다 느린 속도로 데이터가 읽히거나, 또는 쓰여질 수 있다. 예를 들어, 제 2 저장 공간(232)이 MLC 영역인 경우, 하나의 셀당 약 2비트의 데이터를 저장할 수 있고, 제 2 저장 공간(232)이 TLC 영역인 경우, 하나의 셀당 약 3비트의 데이터를 저장할 수 있고, 제 2 저장 공간(232)이 QLC 영역인 경우, 하나의 셀당 약 4비트의 데이터를 저장할 수 있다. 제 2 저장 공간(232)이 MLC 영역인 경우, 제 2 저장 공간(232)은 제 2 비트의 데이터가 저장되는, 복수 개의 셀들로 구성될 수 있다.According to one embodiment, the
일 실시예에 따르면, NAND storage(230)는 제 1 저장 공간(231) 및 제 2 저장 공간(232)에 설정된 전하량을 인가하여, 데이터를 기록 또는 저장할 수 있다. 예를 들어, 제 1 저장 공간(231)은 하나의 셀 당, 약 1비트의 데이터가 저장되므로, 하나의 셀을 기준으로 “0” 또는, “1”의 데이터가 저장될 수 있다. 예를 들어, NAND storage(230)는 제 1 저장 공간(231)에 대응하여 하나의 기준값(예: 전하량, 약 5V)을 설정할 수 있고, 상기 기준값을 초과하는 전하량이 인가될 때, “0”의 데이터를 저장하고, 상기 기준값 미만의 전하량이 인가될 때, “1”의 데이터를 저장할 수 있다. 일 실시예에 따르면, 전자 장치(201)의 제조 공정 상, 열이 발생하게 되면, 제 1 저장 공간(231)에 인가되는 전하량이 적어도 부분적으로 변경(예: 증가 또는 감소)될 수 있고, 제 1 저장 공간(231)에 저장되는 데이터가 오류값을 가질 수 있다. 다른 예를 들어, 제 2 저장 공간(232)이 MLC 영역인 경우, 제 2 저장 공간(232)은 하나의 셀 당, 약 2비트의 데이터가 저장되므로, 하나의 셀을 기준으로 “00”, “01”, “10”, “11”의 데이터 중 하나의 데이터가 저장될 수 있다. 예를 들어, 저장 장치 제어부(221)는 제 2 저장 공간(232)에 대응하여 복수 개의 기준값(예: 복수 개의 전하량, 제 1 기준값(약 2.5V), 제 2 기준값(약 5V), 제 3 기준값(약 7.5V))을 설정할 수 있고, 상기 기준값을 기준으로 구분된 범위(예: 약 2.5V 이하, 약 2.5V 내지 약 5V, 약 5V 내지 약 7.5V, 약 7.5V 초과) 내에 포함된 전하량이 인가될 때, “00”, “01”, “10”, “11”의 데이터 중 하나의 데이터가 저장될 수 있다. 일 실시예에 따르면, 전자 장치(201)의 제조 공정 상, 열이 발생하게 되면, 제 2 저장 공간(232)에 인가되는 전하량이 적어도 부분적으로 변경될 수 있고, 제 2 저장 공간(232)에 저장되는 데이터가 오류값을 가질 수 있다. According to one embodiment, the
일 실시예에 따르면, 제 2 저장 공간(232)은 상대적으로 제 1 저장 공간(231) 보다 다수 개의 기준값이 세분화되어 설정됨에 따라, 온도의 변동으로 인해, 전하량이 다르게 인가되고, 오류값이 저장될 가능성이 높을 수 있다. 예를 들어, 제 2 저장 공간(232)이 TLC 영역 또는 QLC 영역인 경우 기준값의 개수는 상대적으로 MLC 보다 더 늘어나게 되고, 기준값에 따른 범위의 크기도 상대적으로 MLC 보다 더 작아질 수 있다. 제 2 저장 공간(232)의 저장 용량이 커질수록 발열에 의한 온도 변화에 더 큰 영향을 받을 수 있다.According to one embodiment, as the
일 실시예에 따르면, 제 2 저장 공간(232)에 저장된 제 2 데이터는 제 1 저장 공간(231)에 저장된 제 1 데이터 보다 온도 변화에 의해, 손상되거나, 또는 변형될 가능성이 상대적으로 클 수 있다. 일 실시예에 따르면, 제 1 저장 공간(231)에 저장된 제 1 데이터는 열이 발생되는 공정이 수행되더라도, 상대적으로 데이터가 손상되지 않을 수 있다.According to one embodiment, the second data stored in the
일 실시예에 따르면, 프로세서(210)는 외부 전자 장치(예: PC(personal computer))로부터 다운로드된 바이너리로부터 공정 프로세스 관련 데이터(예: 공정 진행 여부)를 저장 장치(220)에 제공할 수 있다. 저장 장치(220)의 저장 장치 제어부(221)는 공정 프로세스 관련 데이터를 기반으로 공정 절차를 확인할 수 있고, 공정 절차의 수행 중에 발생하는 쓰기 정보들을 제 1 저장 공간(231)에 저장할 수 있다. 예를 들어, 제 1 저장 공간(231)은 열의 발생으로 인해 데이터가 손상되지 않을 수 있다. 일 실시예에 따르면, 전자 장치(101)는 쓰기 정보들이 제1 저장 공간(231)에 저장됨으로써, 공정 절차 상, 열이 발생하는 공정이 수행되더라도, 제 1 저장 공간(231)에 저장된 쓰기 정보들의 손상을 방지할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 배드 블록의 발생을 줄일 수 있고, 데이터들에 대한 쓰기 성능이 향상될 수 있다. According to one embodiment, the
일 실시예에 따르면, 프로세서(210)는 공정 절차 상, 열이 발생하는 공정이 종료된 후, 재부팅 동작에 응답하여, 저장 장치 제어부(221)에 공정 완료 정보를 전달할 수 있고, 저장 장치 제어부(221)는 공정 완료 정보의 확인에 응답하여 제 1 저장 공간(231)에 저장된 쓰기 정보들을 제 2 저장 공간(232)으로 마이그레이션(migration)하는 동작을 수행할 수 있다. According to one embodiment, the
일 실시예에 따르면, 전자 장치(201)는 PSA(product state awareness) 인터페이스(interface)(예: 상태 정보)를 활용하여 데이터에 대한 마이그레이션(migration) 동작을 수행할 수 있다. 예를 들어, 전자 장치(201)의 프로세서(210)는 전자 장치에 대한 상태 정보(예: PSA 코드, PSA 데이터)를 저장 장치(220)에 전달할 수 있고, 저장 장치(220)는 자체적으로 전달 받은 상태 정보를 기반으로 데이터에 대한 마이그레이션 동작을 수행할 수 있다.According to one embodiment, the
예를 들어, 전자 장치(101)의 상태 정보(예: PSA 인터페이스)는 아래의 (표 1)에 도시된 정보들을 포함할 수 있다. For example, the status information (eg, PSA interface) of the
(PSA 지원 여부)Production State Awareness
(PSA support or not)
(PSA 최대 데이터 사이즈)PSA Maximum Data Size
(PSA maximum data size)
(PSA 상태)bPSAState
(PSA status)
01h: Pre-soldering
02h: Loading Complete
03h: Soldered00h: OFF
01h: Pre-soldering
02h: Loading Complete
03h: Soldered
(표 1)을 참조하면, 프로세서(210)는 상태 정보의 “eExtendedUFSFeature”를 기반으로 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다. 프로세서(210)는 상태 정보의 “dPSAMaxDataSize”를 기반으로 저장 장치(220)에서 활용 가능한 SLC(예: 제 1 저장 공간(231))의 최대 크기를 확인할 수 있다. 프로세서(210)는 상태 정보의 “bPSAState”를 기반으로 전자 장치(101)의 상태(예: 공정 프로세스의 진행 상태)를 확인할 수 있다. 예를 들어, 프로세서(210)는 호스트 컨트롤러(211)의 제어 하에, “bPSAState”를 저장 장치(220)에 제공할 수 있고, 저장 장치(220)는 “bPSAState”를 기반으로 전자 장치(101)와 관련된 공정 프로세스의 진행 상태를 확인할 수 있다. 예를 들어, “bPSAState”가 00h인 경우, PSA 인터페이스는 OFF된 상태(예: 공정 프로세스의 수행 전 상태)일 수 있고, “bPSAState”가 01h인 경우, PSA 인터페이스는 “Pre-soldering” 상태(예: 공정 프로세스가 진행 중인 상태)일 수 있다. “bPSAState”가 02h인 경우, PSA 인터페이스는 “Loading Complete” 상태(예: 공정 프로세스 상 열이 발생하는 공정이 완료된 상태)일 수 있고, “bPSAState”가 03h인 경우, PSA 인터페이스는 “Soldered” 상태(예: 마이그레이션 동작이 완료된 상태)일 수 있다. 프로세서(210)는 상태 정보의 “bPSADataSize”를 기반으로 제 1 저장 공간(231)(예: SLC)의 크기를 확인할 수 있다. 일 실시예에 따르면, 저장 장치(220)의 저장 장치 제어부(221)는 프로세서(210)로부터 제공된 상태 정보(예: PSA 인터페이스)를 확인할 수 있고, 확인된 상태 정보를 기반으로, 기 설정된 공정 프로세스를 수행할 수 있다.Referring to (Table 1), the
일 실시예에 따르면, 전자 장치(101)는 저장 장치(220) 내에서 제 2 저장 공간(232)의 저장 영역 구분을 위해 configuration을 하는 프로비저닝(provisioning) 동작을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 크기를 설정하는 동작을 포함할 수 있다. 일 실시예에 따르면, 프로비저닝 동작은 전자 장치(101)의 설계 과정에서, 개발자에 의해 미리 설정될 수 있다. 전자 장치(101)는 프로비저닝 동작의 수행 명령에 응답하여, 기 설정된 프로비저닝 동작을 수행할 수 있다.According to one embodiment, the
일 실시예에 따르면, 전자 장치(101)가 PSA인터페이스를 지원하는 상태에서 프로비저닝 동작을 수행하는 경우, PSA 인터페이스와 관련된 상태 정보(예: PSA 인터페이스의 PSA 관련 필드 정보, “dPSAMaxDataSize”, “bPSAState”, “bPSADataSize”)가 모두 초기화될 수 있다. 전자 장치(101)는 프로비저닝 동작에 응답하여, 저장 장치(220)에 저장된 데이터(예: 오류 데이터)를 모두 초기화할 수 있다. 예를 들어, 프로비저닝 동작을 수행할 때, “bPSAState”가 “Pre-soldering” 상태(예: 공정 프로세스가 진행 중인 상태)인 경우, 저장 장치(220)는 제 1 저장 공간(231)에 저장된 데이터를 확인할 수 있고, 상기 확인된 데이터를 “invalidate” 데이터로 설정할 수 있다. 예를 들어, “invalidate” 데이터로 설정된 데이터는 마이그레이션 동작(예: 제 1 저장 공간(231)에서 제 2 저장 공간(232)으로의 마이그레이션)의 수행 시, 마이그레이션 대상에서 제외될 수 있다. 프로비저닝 동작 이후, 제 1 저장 공간(231)을 초과하는 쓰기 데이터가 발생하는 경우, 전자 장치(101)는 초과된 쓰기 데이터를 제 2 저장 공간(232)에 저장하도록 설정될 수 있다. 전자 장치(101)는 저장 장치(220)의 전체 용량(예: NAND 저장부(230))을 기반으로, 제 1 저장 공간(231)의 크기가 최소 1/3에 해당하도록, 상기 제 1 저장 공간(231)의 크기가 설정될 수 있다. 예를 들어, 제 1 저장 공간(231)으로 얼마의 크기가 사용되더라도, 저장 장치(220)의 전체 용량의 크기에는 변화가 없을 수 있다. 전자 장치(101)는 제 1 저장 공간(231)(예: SLC)과 제 2 저장 공간(232)(예: TLC)의 총 사이즈(예: SLC 크기*3+TLC 크기)를 초과하는 크기의 쓰기 요청 신호가 발생하는 경우, 상기 쓰기 요청 신호를 에러(error) 신호로 처리하도록 설정될 수 있다. According to one embodiment, when the
일 실시예에 따르면, 전자 장치(101)는 동일 주소에 “overwrite” 기능을 허용할 수 있고, “overwrite”된 용량만큼 “bPSADataSize”를 감소시킬 수 있고, “overwrite”된 데이터를 “invalidate” 데이터로 설정할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 마이그레이션 동작의 수행 시, sequential write 성능이 최소 약 60MB/s를 보장하도록 설정될 수 있다. 일 실시예에 따르면, 쓰기 성능은 특정한 속도로 한정되지 않으며, 마이그레이션 동작 시, 전자 장치(101)의 성능에 영향을 주지 않는 수준에서 결정될 수 있다. 일 실시예에 따르면, 전자 장치(101)의 프로세서(210)는 프로비저닝 명령을 저장 장치(220)에 전달할 수 있고, 저장 장치(220)는 상기 전달 받은 프로비저닝 명령에 응답하여, 기 설정된 프로비저닝 동작을 기반으로, 저장 장치(220)의 설정(예: 제 2 저장 공간(232)에 대한 설정)을 적어도 부분적으로 변경할 수 있다.According to one embodiment, the
일 실시예에 따르면, 전자 장치(101)의 프로세서(210)는 저장 장치(220)에 제조 공정과 관련된 정보(예: 공정 바이너리)를 제공할 수 있다. 저장 장치(220)의 제어부(예: 저장 장치 제어부(221))는 열이 발생되는 공정 프로세스가 진행 중일 때(예: 상태 정보가 “Pre-soldering” 상태일 때), 제 1 저장 공간(231)을 기반으로 데이터를 저장할 수 있다. 일 실시예에 따르면, 열이 발생되는 공정 프로세스가 완료된 후, 전자 장치(101)가 재부팅되는 경우(예: 상태 정보가 “Loading Complete” 상태일 때), 저장 장치 제어부(221)는 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동시키는 마이그레이션 동작을 수행할 수 있다.According to one embodiment, the
일 실시예에 따르면, 저장 장치(예: 도 2의 저장 장치(220))에 있어서, 제 1 비트의 데이터가 저장되는 제 1 저장 공간(예: 도 2의 제 1 저장 공간(231), SLC) 및 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(예: 도 2의 제 2 저장 공간(232), MLC/TLC/QLC)을 포함하는 제 1 메모리(예: NAND storage)(예: 도 2의 NAND 저장부(230)), 상태 정보가 저장되는 제 2 메모리(예: 도 2의 DRAM(205)), 및 제 1 메모리(230) 및 제 2 메모리에 작동적으로 연결된 메모리 컨트롤러(예: 도 2의 저장 장치 제어부(221))를 포함할 수 있다. 메모리 컨트롤러(221)는 제 2 메모리(205)에 저장된 상태 정보를 기반으로, 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다. 메모리 컨트롤러(221)는 PSA 인터페이스의 지원 확인에 응답하여, 상태 정보를 제 1 상태(예: pre-soldering)로 변경할 수 있다. 메모리 컨트롤러(221)는 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장할 수 있다. 메모리 컨트롤러(221)는 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경할 수 있다. 메모리 컨트롤러(221)는 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션할 수 있다.According to one embodiment, in a storage device (e.g., the
일 실시예에 따르면, 메모리 컨트롤러(221)는 제 1 메모리(230)의 전체 저장 공간 중에서 제 1 저장 공간(231)이 차지하는 비율을 확인할 수 있다. 메모리 컨트롤러(221)는 확인된 비율이 제 1 조건을 충족하는 경우, 제 1 저장 공간(231)의 사이즈를 확인할 수 있다. 메모리 컨트롤러(221)는 상태 정보가 제 1 상태인 것에 응답하여, 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장할 수 있다.According to one embodiment, the
일 실시예에 따르면, 제 1 조건은 제 1 메모리(230)의 전체 저장 공간 중에서 제 1 저장 공간(231)이 차지하는 비율이 약 1/3을 초과하는 조건을 포함할 수 있다. 일 실시예에 따르면, 메모리 컨트롤러(221)는 제 1 조건을 충족하는 경우, 제 1 저장 공간(231)의 사이즈가 약 20GB 이상으로 설정되었는지 여부를 확인할 수 있다.According to one embodiment, the first condition may include a condition in which the proportion of the
일 실시예에 따르면, 상태 정보는 PSA 인터페이스의 지원 여부를 나타내는 제 1 코드 정보, 제 1 저장 공간(231)의 최대 사이즈를 나타내는 제 2 코드 정보, 전자 장치(101)의 상태를 나타내는 제 3 코드 정보, 및 제 1 저장 공간(231)의 사이즈를 나타내는 제 4 코드 정보 중 적어도 하나를 포함할 수 있다.According to one embodiment, the status information includes first code information indicating whether the PSA interface is supported, second code information indicating the maximum size of the
일 실시예에 따르면, 메모리 컨트롤러(221)는 공정 바이너리에 대응되는 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장할 수 있다. 메모리 컨트롤러(221)는 공정 바이너리를 기반으로 공정 프로세스가 진행되는 동안, 발생하는 적어도 하나의 데이터를 제 1 저장 공간(231)에 저장할 수 있다.According to one embodiment, the
일 실시예에 따르면, 메모리 컨트롤러(221)는 적어도 하나의 데이터를 제 1 저장 공간(231)에 저장할 때, 제 1 저장 공간(231)이 초과되는 상황을 확인할 수 있다. 메모리 컨트롤러(221)는 제 1 저장 공간(231)이 초과되는 상황에 응답하여, 적어도 하나의 데이터를 제 2 저장 공간(232)에 저장할 수 있다.According to one embodiment, when storing at least one data in the
일 실시예에 따르면, 메모리 컨트롤러(221)는 제 1 저장 공간(231)에 저장된 데이터가 제 2 저장 공간(232)으로 이동되는 마이그레이션 동작이 완료되면, 상태 정보를 제 2 상태에서 제 3 상태로 변경할 수 있다.According to one embodiment, when the migration operation in which data stored in the
일 실시예에 따르면, 메모리 컨트롤러(221)는 상태 정보가 제 1 상태일 때, 제 1 저장 공간(231)에 기 저장된 데이터를 확인할 수 있다. 메모리 컨트롤러(221)는 기 저장된 데이터를 마이그레이션 제외 데이터로 설정할 수 있다. 메모리 컨트롤러(221)는 마이그레이션 동작이 수행될 때, 제 1 저장 공간(231)에 저장된 데이터 중에서 마이그레이션 제외 데이터가 아닌, 나머지 데이터를 마이그레이션할 수 있다. According to one embodiment, the
일 실시예에 따르면, 공정 프로세스는 열이 발생하는 테스트 및 공정 단계를 포함할 수 있다. According to one embodiment, the manufacturing process may include testing and processing steps that generate heat.
일 실시예에 따르면, 메모리 컨트롤러(221)는 라이트 부스터(write booster) 기능의 지원 여부를 확인할 수 있다. 메모리 컨트롤러(221)는 라이트 부스터 기능을 지원하는 경우, 라이트 부스터 기능을 활성화할 수 있다. 메모리 컨트롤러(221)는 활성화된 라이트 부스터 기능을 기반으로 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장할 수 있다.According to one embodiment, the
일 실시예에 따르면, 메모리 컨트롤러(221)는 라이트 부스터 기능을 지원하는 경우, 라이트 부스터 기능과 관련된 라이트 부스터 플러시 기능을 비활성화할 수 있다. 메모리 컨트롤러(221)는 비활성화된 라이트 부스터 플러시 기능을 기반으로 마이그레이션 동작을 중단할 수 있다.According to one embodiment, when supporting the light booster function, the
일 실시예에 따르면, 메모리 컨트롤러(221)는 재부팅 동작에 따른 운영 체제의 실행에 응답하여, 비활성화된 라이트 부스터 플러시 기능을 활성화할 수 있다. 메모리 컨트롤러(221)는 활성화된 라이트 부스터 플러시 기능을 기반으로 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션할 수 있다.According to one embodiment, the
일 실시예에 따르면, 메모리 컨트롤러(221)는 전자 장치(101)의 부트로더 실행에 응답하여, 라이트 부스터 기능을 활성화할 수 있다. 메모리 컨트롤러(221)는 전자 장치(101)의 운영체제 실행에 응답하여, 라이트 부스터 기능을 비활성화할 수 있다.According to one embodiment, the
일 실시예에 따르면, 전자 장치(예: 도 1의 전자 장치(101))에 있어서, 통신 회로(예; 도 1의 통신 모듈(190)), 상태 정보가 저장되는 제 1 메모리(예: 도 2의 DRAM(205)), 제 1 비트의 데이터가 저장된 제 1 저장 공간(예: 도 2의 제 1 저장 공간(231), SLC) 및 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(예: 도 2의 제 2 저장 공간(232), MLC/TLC/QLC)을 포함하는 제 2 메모리(예: NAND storage)(예: 도 2의 NAND 저장부(230))와 상기 제 2 메모리(230)에 작동적으로 연결된 메모리 컨트롤러(예: 도 2의 메모리 컨트롤러(211))를 포함하는 저장 장치(예: 도 2의 저장 장치(220)) 및 통신 회로(190), 제 1 메모리(205), 및 저장 장치(220)에 작동적으로 연결된 프로세서(예: 도 1의 프로세서(120))를 포함할 수 있다. 프로세서(120)는 제 1 메모리(205)에 저장된 상태 정보를 기반으로 저장 장치(220)가 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다. 프로세서(120)는 저장 장치(220)가 PSA 인터페이스를 지원하는 것에 응답하여, 상태 정보를 제 1 상태로 변경할 수 있다. 프로세서(120)는 상태 정보가 제 1 상태인 것에 응답하여, 통신 회로(190)를 통해 연결된 외부 전자 장치로부터 다운로드된 데이터를 저장 장치(220)에 전달할 수 있다. 프로세서(120)는 다운로드된 데이터가 저장 장치(220)의 제 1 저장 공간(231)에 저장된 상태에서, 다운로드된 데이터에 대응되는 공정 프로세스가 완료되었는지 여부를 확인할 수 있다. 프로세서(120)는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경할 수 있다. 프로세서(120)는 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간(231)에 저장된 데이터가 저장 장치(220)의 제 2 저장 공간(232)으로 마이그레이션되도록 저장 장치(220)의 메모리 컨트롤러(221)를 제어할 수 있다.According to one embodiment, in an electronic device (e.g.,
도 3은 본 개시의 일 실시예에 따른 전자 장치의 상태 정보를 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 1 흐름도이다.FIG. 3 is a first flowchart illustrating a method of migrating data based on status information of an electronic device according to an embodiment of the present disclosure.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
도 3의 전자 장치(101)는 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)와 적어도 일부 유사하거나, 전자 장치(101)의 다른 실시예들을 더 포함할 수 있다.The
일 실시예에 따르면, 전자 장치(101)는 연결 단자(예: 도 1의 연결 단자(178), USB 인터페이스)를 통해, 외부 전자 장치(예: 도 1의 전자 장치(102, 104), PC(personal computer))와 작동적으로 연결된 상태에서, 외부 전자 장치로부터 소프트웨어 바이너리(SW binary)를 획득할 수 있다. 예를 들어, 소프트웨어 바이너리는 전자 장치(101)의 동작(예: 공정 프로세스)을 위한 데이터(예: 공정 바이너리)를 포함할 수 있다. 전자 장치(101)는 획득된 소프트웨어 바이너리를 DRAM(예: 도 2의 DRAM(205))에 저장할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 저장 장치(예: 도 2의 저장 장치(220))가 내부 공간에 배치된 상태(예: SMD(surface mount device))일 수 있다. 전자 장치(101)는 다운로드된 소프트웨어 바이너리를 기반으로 전자 장치(101) 및 저장 장치(220)와 관련된 동작을 수행할 수 있다.According to one embodiment, the
일 실시예에 따르면, 전자 장치(101)의 프로세서(예: 도 1의 프로세서(120), 도 2의 프로세서(210))는 저장 장치(220)와 관련된 상태 정보(예: PSA 인터페이스)를 확인할 수 있고, 확인된 상태 정보를 기반으로 저장 장치(220)가 PSA 인터페이스를 지원하는지 여부를 판단할 수 있다. 예를 들어, 프로세서(210)는 상태 정보에 포함된 “eExtendedUFSFeature”(예: PSA 코드)를 기반으로, 저장 장치(220)가 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다. 만약, 저장 장치(220)가 PSA 인터페이스를 지원하는 경우, 프로세서(210)는 상태 정보에 기반한 공정 프로세스를 수행할 수 있다. 프로세서(210)는 상태 정보에 포함된 “bPSAState”를 “Pre-soldering”(예: 전자 장치(101)가 공정 프로세스를 진행 중임을 나타내는 PSA 코드)으로 변경하여, 저장 장치(220)에 전달할 수 있다.According to one embodiment, the processor of the electronic device 101 (e.g.,
동작 301에서 저장 장치(220)는 전자 장치(101)로부터 제공된 상태 정보를 기반으로, 상태 정보(예: “bPSAState” 정보)가 제 1 상태(예: “Pre-soldering”)인지 여부를 확인할 수 있다. 예를 들어, 저장 장치(220)의 저장 장치 제어부(예: 도 2의 저장 장치 제어부(221))는 PSA 인터페이스에 기반한 공정 프로세스를 진행하는 중, 상태 정보에 포함된 “bPSAState”가 “Pre-soldering”에 대응되는 코드인지 여부를 확인할 수 있다.In
동작 303에서 저장 장치 제어부(221)는 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 저장 공간(예: 도 2의 제 1 저장 공간(SLC)(231))에 저장할 수 있다. 예를 들어, 외부 전자 장치(예: 도 1의 전자 장치(102. 104))로부터 다운로드된 데이터(예: 소프트웨어 바이너리)는 전자 장치(101)의 DRAM(205)에 저장된 상태일 수 있다. 저장 장치 제어부(221)는 DRAM(205)에 저장된 데이터를 제 1 저장 공간(231)으로 이동시킬 수 있다. 예를 들어, 해당 데이터(예: 공정 바이너리(예: 도 2의 제 1 바이너리(212)), 커널 바이너리(예: 도 2의 제 3 바이너리(214)))는 공정 프로세스를 수행할 때, 활용될 수 있다. 예를 들어, 공정 프로세스(예: 공정 단계)는 다양한 구성 부품들이 내부 공간에 배치되고, 구성 부품들과 관련된 다양한 테스트를 진행하는 동작을 포함할 수 있다. 공정 프로세스는 구성 부품들과 관련하여 불량이 확인될 경우, 수행되는 재 작업을 포함할 수 있고, 열이 발생하는 작업을 포함할 수 있다. 일 실시예에 따르면, 저장 장치 제어부(221)는 공정 프로세스가 진행되는 동안, 공정 프로세스와 관련된 다양한 데이터를 제 1 저장 공간(231)에 저장할 수 있다. 제 1 저장 공간(231)은 공정 프로세스에서 열이 발생하는 작업이 수행되더라도, 저장된 데이터의 손상 및 변형이 방지되는 저장 공간일 수 있다. 저장 장치 제어부(221)는 제 1 저장 공간(231)을 초과하는 데이터의 쓰기 요청이 확인될 경우, 상기 데이터를 제 2 저장 공간(232)에 저장할 수 있다. 동작 303과 동작 305 사이에서 프로세서(210) 및 저장 장치(220)는 공정 프로세스를 수행할 수 있다.In
동작 305에서 전자 장치(101)는 공정 단계(예: 공정 프로세스)의 진행이 완료된 후, 재부팅 동작을 수행할 수 있다. 예를 들어, 공정 프로세스는 설정된 테스트 및 작업이 완료되는 경우, 유저 바이너리(user binary)를 저장 장치(220)에 저장하는 동작을 포함할 수 있다. 예를 들어, 저장 장치 제어부(221)는 유저 바이너리의 데이터 용량이 제 1 저장 공간(231)을 초과하게 되면, 상기 유저 바이너리를 제 2 저장 공간(232)에 저장할 수 있다. 동작 305에서 유저 바이너리가 저장 장치(220)에 저장되는 동작이 확인되면, 전자 장치(101)는 재부팅을 수행할 수 있다. 공정 프로세스는 저장 장치(220)에 유저 바이너리가 저장되는 동작에 응답하여, 재부팅을 수행하도록 설정될 수 있다.In
동작 307에서 전자 장치(101)는 재부팅 동작에 응답하여, 부트로더(bootloader)(예: 도 2의 제 2 바이너리(213))를 수행할 수 있다. 예를 들어, 프로세서(210)는 제 2 바이너리(213)를 기반으로 부트로더를 수행할 수 있다.In
동작 309에서 프로세서(210)는 부트로더에 의해 확인된, 전자 장치(101)의 상태 정보가 제 1 상태(예: “Pre-soldering”)인지 여부를 확인할 수 있고, 상태 정보가 제 1 상태인 것에 응답하여, 상태 정보를 제 1 상태(예: “Pre-soldering”, 공정 프로세스가 진행 중인 상태)에서 제 2 상태(예: “Loading Complete”, 공정 프로세스 상 열이 발생하는 공정이 완료된 상태)로 변경할 수 있다. 프로세서(210)는 제 2 상태(예: “Loading Complete”)로 변경된 상태 정보를 저장 장치(220)에 전달할 수 있다.In
도 3을 참조하면, 동작 301 내지 동작 303은 저장 장치 제어부(221)에 의해 수행될 수 있고, 동작 305 내지 동작 309는 전자 장치(101)의 프로세서(210)에 의해 수행될 수 있다.Referring to FIG. 3 ,
동작 311에서 저장 장치 제어부(221)는 전자 장치(101)로부터 제공된 상태 정보를 기반으로, 상태 정보(예: “bPSAState” 정보)가 제 2 상태(예: “Loading Complete”)인지 여부를 확인할 수 있다. 예를 들어, 상태 정보가 제 2 상태라는 것은 공정 프로세스 상 열이 발생하는 공정이 완료되었음을 의미할 수 있다.In
동작 313에서 상태 정보가 제 2 상태인 것에 응답하여, 저장 장치 제어부(221)는 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동하는 마이그레이션 동작을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 마이그레이션 동작이 수행되는 중에도 쓰기 요청이 발생할 경우, 쓰기 요청에 따른 쓰기 성능을 최소 약 60MB/s 이상으로 설정할 수 있다. 일 실시예에 따르면, 쓰기 성능은 특정한 속도로 한정되지 않으며, 마이그레이션 동작 시, 전자 장치(101)의 성능에 영향을 주지 않는 수준에서 결정될 수 있다. 저장 장치 제어부(221)는 마이그레이션 동작이 완료되면, 상태 정보를 제 2 상태(예: “Loading Complete”)에서 제 3 상태(“Soldered”)로 변경할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 저장 장치(220)의 상태 정보(예: “Soldered”로 변경된 상태)를 확인할 수 있고, 마이그레이션 동작이 완료되었음을 판단할 수 있다.In response to the state information being in the second state in
일 실시예에 따르면, 전자 장치(101)는 저장 장치(220)와 관련된 상태 정보(예: PSA 인터페이스, PSA 인터페이스와 관련된 코드 정보)를 확인할 수 있고, 상기 확인된 상태 정보를 기반으로 저장 장치(220)가 PSA 인터페이스를 지원하는지 여부를 판단할 수 있다. 저장 장치(220)가 PSA 인터페이스를 지원하는 경우, 전자 장치(101)는 도 3의 제 1 흐름도를 기반으로 공정 프로세스를 수행할 수 있다. 일 실시예에 따르면, 공정 프로세스 상, 열이 발생하는 작업이 수행되더라도, 전자 장치(101)는 제 1 저장 공간(231)을 기반으로 데이터를 저장하게 되므로, 상기 데이터의 손상 및 변형을 방지할 수 있다.According to one embodiment, the
도 4는 본 개시의 일 실시예에 따른 전자 장치의 상태 정보를 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 2 흐름도이다.FIG. 4 is a second flowchart illustrating a method of migrating data based on status information of an electronic device according to an embodiment of the present disclosure.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
도 4의 전자 장치(101)는 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)와 적어도 일부 유사하거나, 전자 장치(101)의 다른 실시예들을 더 포함할 수 있다.The
동작 401에서 전자 장치(101)는 프로세서(예: 도 1의 프로세서(120), 도 2의 프로세서(210), SMD(surface mount device)(예: AP(application processor))의 SMD)가 완료된 상태일 수 있다. 예를 들어, 전자 장치(101)의 내부 공간에 프로세서(210)의 구성부가 배치되는 공정이 완료된 상태일 수 있다. 프로세서(210)의 SMD가 완료되면, 전자 장치(101)는 eDL(emergency download) 모드로 진입할 수 있다. 예를 들어, eDL 모드는 저장 장치(220)에 어떠한 데이터도 저장되지 않은 상태(예: 초기화 상태) 또는, 전자 장치(101)의 연결 단자(예: 도 1의 연결 단자(178), USB 인터페이스)를 통해 연결된 외부 전자 장치(예: USB 장치)가 부트 장치로 설정된 상태일 때, 진입될 수 있다. 일 실시예에 따르면, 프로세서(210)는 eDL 모드에서 상기 연결 단자를 통해 연결된 외부 전자 장치(예: 도 1의 전자 장치(102, 104))로부터 소프트웨어 바이너리(SW binary)를 다운로드할 수 있고, 상기 소프트웨어 바이너리를 DRAM(예: 도 2의 DRAM(205))의 제 1 바이너리(예: 도 2의 제 1 바이너리(212))에 저장할 수 있다. 프로세서(210)는 제 1 바이너리(212)를 기반으로 전자 장치(101)를 적어도 부분적으로 제어할 수 있다.In
동작 403에서 프로세서(210)는 상태 정보(예: PSA 인터페이스와 관련된 정보(예: PSA 코드 정보))를 초기화할 수 있다. 일 실시예에 따르면, 호스트 컨트롤러(host controller)(예: 도 2의 호스트 컨트롤러(211))는 제 1 바이너리(212)를 기반으로 저장 장치(220)를 초기화시킬 수 있고, 프로비저닝(provisioning) 동작(예: LU (logical unit) configuration 동작)을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 SMD 동작으로 인해 발생된 열 손상 데이터를 초기화시킬 수 있다. 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 Logical Unit 크기를 설정하는 동작을 포함할 수 있다. 프로비저닝 동작이 완료된 후, 호스트 컨트롤러(211)는 상태 정보를 기반으로, 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부(예: 상태 정보에 포함된 “eExtendedUFSFeature” 정보) 및 제 1 저장 공간(231)의 최대 크기(예: 상태 정보에 포함된 “dPSAMaxDataSize” 정보)가 NAND 저장부(230)의 약 1/3 이상을 차지하도록 설정되었는지 여부를 확인할 수 있다.In
동작 405에서 프로세서(210)(예: 호스트 컨트롤러(211))는 상태 정보(예: 제 1 바이너리(212))를 기반으로, 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다. 예를 들어, 프로세서(210)는 상태 정보에 포함된 “eExtendedUFSFeature” 정보를 확인할 수 있고, 저장 장치(220)에서 PSA 인터페이스를 지원하는지 여부를 판단할 수 있다.In
동작 405에서 저장 장치(220)가 PSA 인터페이스를 지원하는 경우, 동작 407에서 프로세서(210)는 상태 정보를 기반으로 공정 바이너리(예: 공정 프로세스)가 진행 중인지 여부를 확인할 수 있다. 예를 들어, 공정 바이너리가 진행 중이라면, 프로세서(210)는 진행 중인 공정 바이너리를 기반으로 저장 장치(220)의 설정 정보(예: 제 1 저장 공간(231)의 설정과 관련된 정보, PSA 인터페이스의 설정과 관련된 정보)를 변경할 수 있다. 동작 405에서 저장 장치(220)가 PSA 인터페이스를 지원하지 않는다면, 프로세서(210)는 상태 정보에 기반한 제 2 흐름도 동작을 종료할 수 있다.If the
동작 407에서 공정 바이너리의 진행이 확인되면, 동작 409에서 프로세서(210)는 저장 장치(220)의 제 1 저장 공간(231)(예: 제 1 저장 공간(231)의 크기)을 확인할 수 있다. 일 실시예에 따르면, 저장 장치(220)가 PSA 인터페이스를 지원하는 조건 및 제 1 저장 공간(231)의 최대 크기와 관련된 조건이 충족하게 되면, 호스트 컨트롤러(211)는 공정 바이너리를 기반으로 제 1 저장 공간(231)의 크기(예: “bPSADataSize” 정보)를 확인할 수 있다. 예를 들어, 공정 바이너리에 따른 공정 프로세스는 복수 개일 수 있으며, 각각의 공정 프로세스에 따른 제 1 저장 공간(231)의 크기는 다르게 설정될 수 있다. 예를 들어, 제 1 저장 공간(231)의 크기는 적어도 약 20GB이상으로 설정된 상태일 수 있다. 일 실시예에 따르면, 제 1 저장 공간(231)의 크기는 PSA 인터페이스를 지원하는 조건에 따라, 미리 설정된 상태일 수 있다.If the progress of the process binary is confirmed in
동작 411에서 프로세서(210)(예: 호스트 컨트롤러(211))는 상태 정보(예: “bPSAState” 정보)를 제 1 상태(예: “Pre-soldering”)로 설정할 수 있고, 제 1 상태의 상태 정보(예: 바이너리 데이터)를 저장 장치(220)에 제공할 수 있다.In
동작 413에서 프로세서(210)는 공정 프로세스와 관련된 데이터를 저장 장치(220)의 제 1 저장 공간(231)에 저장할 수 있다. 일 실시예에 따르면, 호스트 컨트롤러(211)는 제 2 바이너리(예: 도 2의 제 2 바이너리(213))를 기반으로 부트로더를 수행할 수 있고, 부트로더의 수행 과정에서, 저장 장치(220)와 관련된 상태 정보가 제 1 상태인지 여부를 확인할 수 있고, 제 1 저장 공간(231)의 크기가 공정 바이너리에 대응되는 크기인지 여부를 확인할 수 있다. In
일 실시예에 따르면, 호스트 컨트롤러(211)는 공정 바이너리에 대응되는 제 3 바이너리(예: 도 2의 제 3 바이너리(214))를 기반으로 동작을 수행할 수 있다. 예를 들어, 호스트 컨트롤러(211)는 제 3 바이너리(214)를 저장 장치(220)에 제공할 수 있고, 저장 장치(220)의 저장 장치 제어부(221)는 상기 제공된 제 3 바이너리(214)를 제 1 저장 공간(231)에 저장할 수 있다. 예를 들어, 데이터가 제 1 저장 공간(231)에 저장되는 과정에서 제 1 저장 공간(231)의 저장 용량이 초과하게 되면, 나머지 데이터는 제 2 저장 공간(232)에 저장될 수 있다.According to one embodiment, the
동작 415에서 전자 장치(101)는 제 1 저장 공간(231)에 저장된 공정 바이너리를 기반으로 다양한 종류의 기능 테스트 및 공정 단계(예: 공정 프로세스)를 진행할 수 있다. 예를 들어, 공정 프로세스(예: 공정 단계)는 다양한 구성 부품들이 내부 공간에 배치되고, 구성 부품들과 관련된 다양한 테스트를 진행하는 동작을 포함할 수 있다. 공정 프로세스는 구성 부품들과 관련하여 불량이 확인될 경우, 수행되는 재 작업을 포함할 수 있고, 열이 발생하는 작업을 포함할 수 있다.In
일 실시예에 따르면, 전자 장치(101)는 제 1 저장 공간(231)을 기반으로 데이터가 저장되므로, 동작 415에서의 열이 발생하는 공정 프로세스가 진행되더라도, 제 1 저장 공간(231)에 저장된 데이터가 손상되거나, 또는 변형되는 상황을 방지할 수 있다. 일 실시예에 따르면, 제 1 저장 공간(231)은 NAND 저장부(230)의 SLC(single level cell) 영역을 포함할 수 있고, 하나의 셀 당 약 1 비트의 데이터가 저장되므로, 상대적으로 주변의 온도 상승에 따른 데이터 손상이 적을 수 있다. 전자 장치(101)는 공정 프로세스가 진행되는 동안, 제 1 저장 공간(231)을 기반으로 데이터를 저장하여, 데이터의 손상 또는 변형을 방지할 수 있다.According to one embodiment, the
동작 415에서 공정 바이너리에 기반한 공정 프로세스가 완료되면, 동작 405로 회귀할 수 있다. 동작 405에서 프로세서(210)는 PSA 인터페이스를 지원하는지 여부를 확인할 수 있다.When the process process based on the process binary is completed in
동작 407에서 공정 바이너리의 진행이 확인되지 않으면, (예: 공정 프로세스가 완료되었다면) 동작 417에서 상태 정보를 제 1 상태(예: “Pre-soldering”)에서 제 2 상태(예: “Loading Complete”)로 변경할 수 있다. 예를 들어, 공정 바이너리의 진행이 확인되지 않는 상황은 공정 프로세서(예: 공정 단계)가 완료된 상황을 포함할 수 있다. 공정 프로세스가 완료되었다는 것은 열이 발생하는 제작 공정이 완료되었음을 의미할 수 있다.If the progress of the process binary is not confirmed in operation 407 (e.g., if the process has been completed), status information is changed from a first state (e.g., “Pre-soldering”) to a second state (e.g., “Loading Complete”) in operation 417. ) can be changed to . For example, a situation in which the progress of a process binary is not confirmed may include a situation in which a process processor (e.g., a process step) has been completed. Completion of the manufacturing process may mean that the manufacturing process that generates heat has been completed.
동작 419에서 저장 장치(220)의 저장 장치 제어부(221)는 상태 정보가 제 2 상태(예: “Loading Complete”)인 것(예: 공정 프로세스의 완료)에 응답하여, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동하는 마이그레이션 동작을 수행할 수 있다. 예를 들어, 저장 장치 제어부(221)는 SLC 영역(예: 제 1 저장 공간(231))에 저장된 데이터를 MLC/TLC/QLC 영역(예: 제 2 저장 공간(232))으로 이동시켜서 저장할 수 있다.In
동작 421에서 마이그레이션 동작이 완료되면, 저장 장치 제어부(221)는 상태 정보를 제 2 상태(예: “Loading Complete”)에서 제 3 상태(“Soldered”)로 변경할 수 있다. 예를 들어, 저장 장치 제어부(221)는 마이그레이션 동작의 완료를 나타내는 신호(예: 제 3 상태로 변경된 상태 정보)를 프로세서(210)에 전달할 수 있고, 프로세서(210)는 마이그레이션 동작이 완료되었음을 확인할 수 있다. 예를 들어, 프로세서(210)는 저장 장치(220)에 대한 상태 정보를 기반으로 마이그레이션 동작이 완료되었음을 확인할 수 있다.When the migration operation is completed in
도 5는 본 개시의 일 실시예에 따른 전자 장치의 상태 정보를 기반으로 데이터를 마이그레이션하는 공정 프로세스를 도시한 예시도이다.FIG. 5 is an exemplary diagram illustrating a process for migrating data based on status information of an electronic device according to an embodiment of the present disclosure.
도 5의 전자 장치(101)는 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)와 적어도 일부 유사하거나, 전자 장치(101)의 다른 실시예들을 더 포함할 수 있다. 도 5의 프로세서(210)는 도 2의 프로세서(210)와 적어도 일부 유사하거나, 프로세서(210)의 다른 실시예들을 더 포함할 수 있다.The
도 5를 참조하면, 공정 프로세스의 진행 및 완료 과정에서, 전자 장치의 상태 정보에 따른 PSA 상태(PSA state)(510) 및 저장 장치(220)에서 저장 공간으로 활용되는 cell type(520)을 도시한다. 예를 들어, PSA state(510)는 상태 정보에 포함된 “bPSAState”에 대응되는 정보를 의미할 수 있다.Referring to FIG. 5, during the progress and completion of the process, the
도 5를 참조하면, 동작 501에서 1st SMD(531)(예: AP의 SMD)가 완료된 후, 수행되는 제 1 공정 프로세스(예: 동작 501, 동작 502) 및 동작 503에서 2nd SMD(533)(예: Master RF의 SMD)가 완료된 후, 수행되는 제 2 공정 프로세서(예: 동작 503, 동작 504)가 도시되었으나, 이에 한정되지는 않는다. 예를 들어, 공정 프로세스는 복수 개로 구성될 수 있다.Referring to FIG. 5, after the 1st SMD 531 (e.g., SMD of AP) is completed in
동작 501에서 프로세서(210)는 1st SMD(531)가 완료되고, 프로비저닝(provisioning) 동작(예: LU (logical unit) configuration 동작)을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 1st SMD(531) 동작으로 인해 발생된 열 손상 데이터를 초기화시키는 동작을 포함할 수 있다. 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 Logical Unit 크기를 설정하는 동작을 포함할 수 있다. 동작 501에서 프로세서(210)는 제 1 공정 프로세스와 관련된 데이터를 제 1 저장 공간(231)에 저장(예: 1st 바이너리 다운로드)할 수 있다.In
동작 502에서 전자 장치(101)는 제 1 공정 프로세스와 관련된 기능 검사(function test)가 수행될 수 있고, 상기 기능 검사의 결과, 불량이 확인될 경우, 제 1 공정 프로세스에 기반한 재 작업(예: 재 작업 발생 가능(532))을 수행할 수 있다. 예를 들어, 재 작업은 열이 발생하는 동작을 포함할 수 있다.In
일 실시예에 따르면, 제 1 공정 프로세스(예: 동작 501, 동작 502)가 진행되고, 제 2 공정 프로세스(예: 동작 503, 동작 504)가 진행될 수 있다. 도 5를 참조하면, 제 1 공정 프로세스(501, 502) 및 제 2 공정 프로세스(503, 504)가 진행되는 동안, 상태 정보(예: PSA state(510))가 제 1 상태(예: “Pre-soldering”(511))를 유지할 수 있다. 예를 들어, 공정 프로세스 과정에서 쓰기 요청이 발생하는 경우, 저장 장치(220)는 쓰기 요청에 따른 데이터를 제 1 저장 공간(321)(예: Cell Type(520): SLC(521))에 저장할 수 있다.According to one embodiment, a first process (eg,
동작 503에서 프로세서(210)는 2nd SMD(533)가 완료되고, 프로비저닝(provisioning) 동작(예: LU (logical unit) configuration 동작)을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 2nd SMD(533)동작으로 인해 발생된 열 손상 데이터를 초기화시키는 동작을 포함할 수 있다. 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 Logical Unit 크기를 설정하는 동작을 포함할 수 있다. 동작 503에서 프로세서(210)는 제 2 공정 프로세스와 관련된 데이터를 제 1 저장 공간(231)에 저장(예: 2nd 바이너리 다운로드)할 수 있다.In
동작 504에서 전자 장치(101)는 제 2 공정 프로세스와 관련된 기능 검사(function test)가 수행될 수 있고, Main 공정이 진행될 수 있다. 전자 장치(101)는 기능 검사 및 Main 공정의 결과, 불량이 확인될 경우, 제 2 공정 프로세스에 기반한 재 작업(예: 재 작업 발생 가능(534))을 수행할 수 있다. 예를 들어, 재 작업은 열이 발생하는 작업을 포함할 수 있다.In
일 실시예에 따르면, 전자 장치(101)의 제작에 관한 공정 프로세스가 모두 완료된 경우, 동작 505에서 프로세서(210)는 유저 바이너리(user binary)를 다운로드할 수 있다. 예를 들어, 유저 바이너리는 제 1 저장 공간(231)에 저장될 수 있다. 만약, 유저 바이너리의 데이터 용량이 제 1 저장 공간(231)을 초과하는 경우, 유저 바이너리는 제 2 저장 공간(232)에 저장될 수 있다.According to one embodiment, when all processes related to manufacturing the
동작 505에서 유저 바이너리가 저장 장치(220)에 저장되는 동작에 응답하여, 동작 506에서 전자 장치(101)는 재부팅 동작(예: 단말 power on)을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 재부팅 동작에 응답하여, 제 2 바이너리(예: 도 2의 제 2 바이너리(213))를 기반으로 부트로더(bootloader)를 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 부트로더에 의해 확인된 상태 정보가 제 1 상태(511)(예: “Pre-soldering”)일 경우, 상태 정보를 제 1 상태(511)(예: “Pre-soldering”(511))에서 제 2 상태(512)(예: “Loading Complete”(512))로 변경할 수 있다. 프로세서(210)는 제 2 상태(512)에 대응되는 상태 정보(예: 상태 정보에 포함된 “bPSAState” 정보)를 저장 장치(220)에 전달할 수 있다.In response to the operation of storing the user binary in the
저장 장치(220)의 저장 장치 제어부(211)는 상태 정보가 제 2 상태(512)(예: “Loading Complete”(512))인 것을 확인하면, 제 1 저장 공간(231)에 저장된 데이터에 대한 마이그레이션 동작(513)을 수행할 수 있다. 예를 들어, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동시켜 저장할 수 있다. 저장 장치 제어부(221)는 마이그레이션 동작(513)이 완료되면, 상태 정보를 제 2 상태(512)(예: “Loading Complete”(512))에서 제 3 상태(514)(“Soldered”(514))로 변경할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 저장 장치(220)의 상태 정보(예: “Soldered”(514)로 변경된 상태)를 확인할 수 있고, 마이그레이션 동작(513)이 완료되었음을 판단할 수 있다.When the storage
도 6은 본 개시의 일 실시예에 따른 write booster 기능을 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 1 흐름도이다.FIG. 6 is a first flowchart illustrating a method of migrating data based on the write booster function according to an embodiment of the present disclosure.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
도 6의 전자 장치(101)는 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)와 적어도 일부 유사하거나, 전자 장치(101)의 다른 실시예들을 더 포함할 수 있다.The
일 실시예에 따르면, 전자 장치(101)는 연결 단자(예: 도 1의 연결 단자(178), USB 인터페이스)를 통해, 외부 전자 장치(예: 도 1의 전자 장치(102, 104), PC(personal computer))와 작동적으로 연결된 상태에서, 외부 전자 장치로부터 소프트웨어 바이너리(SW binary)를 획득할 수 있다. 예를 들어, 소프트웨어 바이너리는 전자 장치(101)의 동작(예: 공정 프로세스)을 위한 데이터(예: 공정 바이너리)를 포함할 수 있다. 전자 장치(101)는 획득된 소프트웨어 바이너리를 DRAM(예: 도 2의 DRAM(205))에 저장할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 저장 장치(예: 도 2의 저장 장치(220))가 내부 공간에 배치된 상태(예: SMD(surface mount device))일 수 있다. 전자 장치(101)는 다운로드된 소프트웨어 바이너리를 기반으로 전자 장치(101) 및 저장 장치(220)와 관련된 동작을 수행할 수 있다. According to one embodiment, the
동작 601에서 전자 장치(101)의 프로세서(예: 도 1의 프로세서(120), 도 2의 프로세서(210))는 저장 장치(220)에서 라이트 부스터(write booster) 기능을 지원하는지 여부를 확인할 수 있다. 예를 들어, 프로세서(210)는 공정 프로세스가 진행 중인 상태에서 저장 장치(220)가 라이트 부스터 기능을 지원하는지 여부를 확인할 수 있다.In
동작 603에서 저장 장치(220)가 라이트 부스터 기능을 지원하는 경우, 프로세서(210)는 라이트 부스터 기능을 활성화하면서, 라이트 부스터 플러시(write booster flush) 기능을 비활성화할 수 있다. 예를 들어, 라이트 부스터 기능을 지원하는 저장 장치(220)는 라이트 부스터 기능이 활성화 상태(예: ON)일 때, 제 1 저장 공간(예: 도 2의 제 1 저장 공간(231))을 기반으로 데이터를 저장할 수 있고, 라이트 부스터 기능이 비활성화 상태(예: OFF)일 때, 제 2 저장 공간(예: 도 2의 제 2 저장 공간(232))을 기반으로 데이터를 저장할 수 있다. 일 실시예에 따르면, 라이트 부스터 기능이 활성화 상태에서 비활성화 상태로 변경될 때, 라이트 부스터 플러시 기능이 활성화 상태라면, 제 1 저장 공간(231)에 저장된 데이터가 제 2 저장 공간(232)으로 마이그레이션될 수 있다. 일 실시예에 따르면, 전자 장치(101)는 공정 프로세스가 진행 중인 동안에는 제 1 저장 공간(231)에 저장된 데이터가 제 2 저장 공간(232)으로 마이그레이션되지 않도록, 라이트 부스터 플러시 기능을 비활성화 상태로 설정할 수 있다. 저장 장치(220)의 저장 장치 제어부(221)는 라이트 부스터 플러시 기능이 비활성화 상태임을 확인하고, 마이그레이션 동작을 수행하지 않을 수 있다.If the
동작 605에서 저장 장치 제어부(221)는 라이트 부스터 기능이 활성화 상태(예: ON)인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터(예: 소프트웨어 바이너리)를 제 1 저장 공간(예: 도 2의 제 1 저장 공간(SLC)(231))에 저장할 수 있다. 일 실시예에 따르면, 저장 장치 제어부(221)는 공정 프로세스가 진행되는 동안, 공정 프로세스와 관련된 다양한 데이터를 제 1 저장 공간(231)에 저장할 수 있다. 제 1 저장 공간(231)은 공정 프로세스에서 열이 발생하는 작업이 수행되더라도, 저장된 데이터의 손상 및 변형이 방지되는 저장 공간일 수 있다.In
동작 607에서 프로세서(210)는 공정 단계(예: 공정 프로세스)의 진행이 완료된 후, 유저 바이너리를 다운로드할 수 있다. 예를 들어, 공정 프로세스는 설정된 테스트 및 작업이 완료되는 경우, 공정 단계 상 유저 바이너리(user binary)를 저장 장치(220)에 저장하는 동작을 포함할 수 있다. 예를 들어, 유저 바이너리가 저장 장치(220)에 저장되는 동작이 확인되면, 프로세서(210)는 재부팅을 수행할 수 있다.In
동작 609에서 프로세서(210)는 운영체제(OS)가 수행되는 시점에서 비활성화 상태인 라이트 부스터 플러시 기능을 활성화 상태로 전환할 수 있다. 예를 들어, 전자 장치(101)가 재부팅되는 과정에서, 프로세서(210)는 운영체제를 실행할 수 있고, 비활성화 상태의 라이트 부스터 플러시 기능을 활성화 상태로 변경할 수 있다.In
동작 611에서 저장 장치 제어부(221)는 라이트 부스터 플러시 기능(예: ON 상태, 활성화 상태)을 기반으로 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동시키는 마이그레이션 동작을 수행할 수 있다.In
일 실시예에 따르면, 전자 장치(101)는 저장 장치(220)와 관련된 라이트 부스터 기능을 지원하는지 여부를 확인할 수 있고, 라이트 부스터 기능의 활성화 및 라이트 부스터 플러시 기능의 비활성화 동작을 수행할 수 있다. 저장 장치(220)가 라이트 부스터 기능을 지원하는 경우, 전자 장치(101)는 라이트 부스터 기능의 활성화에 응답하여, 데이터를 제 1 저장 공간(231)에 저장할 수 있다. 예를 들어, 전자 장치(101)는 라이트 부스터 기능에 따라, 데이터를 제 1 저장 공간(231)에 저장하면서도, 라이트 부스터 플러시 기능이 비활성화되어 있으므로, 데이터를 제 1 저장 공간(231)에서 제 2 저장 공간(232)으로 이동시키는 마이그레이션 동작을 수행하지 않을 수 있다. 일 실시예에 따르면, 전자 장치(101)는 공정 프로세스(예: 도 6의 동작 607)에 따른 테스트 및 작업이 완료되는 경우, 유저 바이너리를 다운로드할 수 있다. 일 실시예에 따르면, 공정 프로세스 상, 열이 발생하는 작업이 수행되더라도, 전자 장치(101)는 라이트 부스터 기능을 기반으로 데이터를 제 1 저장 공간(231)에 저장하므로, 발열로 인한 데이터의 손상 및 변형을 방지할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 공정 프로세스가 완료된 이후, 재부팅 동작을 수행할 수 있고, 운영체제(OS)가 수행되는 시점에 비활성화 상태인 라이트 부스터 플러시 기능을 활성화 상태로 변경할 수 있다. 전자 장치(101)는 라이트 부스터 플러시 기능을 기반으로 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동시키는 마이그레이션 동작을 수행할 수 있다.According to one embodiment, the
도 7은 본 개시의 일 실시예에 따른 write booster 기능을 기반으로 데이터를 마이그레이션하는 방법을 도시한 제 2 흐름도이다.FIG. 7 is a second flowchart illustrating a method of migrating data based on the write booster function according to an embodiment of the present disclosure.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.In the following embodiments, each operation may be performed sequentially, but is not necessarily performed sequentially. For example, the order of each operation may be changed, and at least two operations may be performed in parallel.
도 7의 전자 장치(101)는 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)와 적어도 일부 유사하거나, 전자 장치(101)의 다른 실시예들을 더 포함할 수 있다.The
동작 701에서 전자 장치(101)는 프로세서(예: 도 1의 프로세서(120), 도 2의 프로세서(210), SMD(surface mount device)(예: AP(application processor))의 SMD)가 완료된 상태일 수 있다. 예를 들어, 전자 장치(101)의 내부 공간에 프로세서(210)의 구성부가 배치되는 공정이 완료된 상태일 수 있다. 프로세서(210)의 SMD가 완료되면, 전자 장치(101)는 eDL(emergency download) 모드로 진입할 수 있다. 예를 들어, eDL 모드는 저장 장치(220)에 어떠한 데이터도 저장되지 않은 상태(예: 초기화 상태) 또는, 전자 장치(101)의 연결 단자(예: 도 1의 연결 단자(178), USB 인터페이스)를 통해 연결된 외부 전자 장치(예: USB 장치, 도 1의 전자 장치(102, 104))가 부트 장치로 설정된 상태일 때, 진입될 수 있다. 일 실시예에 따르면, 프로세서(210)는 eDL 모드에서 상기 연결 단자를 통해 연결된 외부 전자 장치로부터 소프트웨어 바이너리(SW binary)를 다운로드할 수 있고, 상기 소프트웨어 바이너리를 DRAM(예: 도 2의 DRAM(205))의 제 1 바이너리(예: 도 2의 제 1 바이너리(212))에 저장할 수 있다.In
동작 703에서 프로세서(210)는 저장 장치(220)에 기 저장된 데이터를 invalidate로 처리할 수 있다. 예를 들어, invalidate 처리된 데이터는 추후 마이그레이션 동작의 수행 시, 마이그레이션 대상에서 제외될 수 있다. 일 실시예에 따르면, eDL 바이너리(212)의 수행에 응답하여, 호스트 컨트롤러(host controller)(예: 도 2의 호스트 컨트롤러(211))는 저장 장치(220)를 초기화시킬 수 있고, 프로비저닝(provisioning) 동작(예: LU (logical unit) configuration 동작)을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 SMD 동작으로 인해 발생된 열 손상 데이터를 초기화시킬 수 있다. 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 Logical Unit 크기를 설정하는 동작을 포함할 수 있다. 프로비저닝 동작이 완료된 후, 저장장치 컨트롤러(221)은 저장 장치(220)에 기 저장된 데이터를 확인할 수 있고, 확인된 데이터를 invalidate로 처리할 수 있다.In
동작 705에서 프로세서(210)(예: 호스트 컨트롤러(211))는 저장 장치(220)에서 라이트 부스터(write booster) 기능을 지원하는지 여부를 확인할 수 있다. 동작 705에서 저장 장치(220)가 라이트 부스터 기능을 지원하지 않는다면, 프로세서(210)는 라이트 부스터 기능에 기반한 제 2 흐름도 동작을 종료할 수 있다.In
동작 705에서 저장 장치(220)가 라이트 부스터 기능을 지원하는 경우, 동작 707에서 프로세서(210)는 공정 바이너리가 진행 중인지 여부를 확인할 수 있다. 예를 들어, 공정 바이너리가 진행 중이라면, 프로세서(210)는 라이트 부스터 기능을 활성화하면서, 라이트 부스터 플러시 기능을 비활성화할 수 있다. If the
동작 709에서 프로세서(210)는 라이트 부스터 기능을 활성화할 수 있고, 라이트 부스터 플러시 기능을 비활성화할 수 있다. 프로세서(210)는 라이트 부스터 기능을 활성화하면서, 라이트 부스터 플러시 기능의 경우 비활성화되도록 설정을 변경할 수 있다. 예를 들어, 프로세서(210)는 활성화된 라이트 부스터 기능을 기반으로, 데이터를 제 1 저장 공간(231)에 저장하면서도, 비활성화된 라이트 부스터 플러시 기능을 기반으로, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 이동시키는 마이그레이션 동작을 수행하지 않을 수 있다.At
동작 711에서 프로세서(210)는 공정 프로세스와 관련된 데이터를 저장 장치(220)의 제 1 저장 공간(231)에 저장할 수 있다. 일 실시예에 따르면, 호스트 컨트롤러(211)는 부트로더(예: 도 2의 부트로더(213))를 수행할 수 있고, 부트로더(213)의 수행 과정에서, 저장 장치(220)와 관련된 라이트 부스터 기능이 활성화된 상태를 확인할 수 있다. 일 실시예에 따르면, 호스트 컨트롤러(211)는 공정 바이너리에 대응되는 커널 바이너리(예: 도 2의 커널 바이너리(214))를 수행할 수 있다. 예를 들어, 호스트 컨트롤러(211)는 공정 바이너리를 저장 장치(220)에 제공할 수 있고, 저장 장치(220)의 저장 장치 제어부(221)는 활성화된 라이트 부스터 기능을 기반으로, 상기 공정 바이너리를 제 1 저장 공간(231)에 저장할 수 있다. 예를 들어, 데이터가 제 1 저장 공간(231)에 저장되는 과정에서 제 1 저장 공간(231)의 저장 용량이 초과하게 되면, 나머지 데이터는 제 2 저장 공간(232)에 저장될 수 있다. 동작 711에서 프로세서(210)는 유저 바이너리를 다운로드할 수 있다.In
동작 713에서 전자 장치(101)는 공정 바이너리를 기반으로 다양한 종류의 기능 테스트 및 공정 단계(예: 공정 프로세스)를 진행할 수 있다. 예를 들어, 공정 프로세스(예: 공정 단계)는 다양한 구성 부품들이 내부 공간에 배치되고, 구성 부품들과 관련된 다양한 테스트를 진행하는 동작을 포함할 수 있다. 공정 프로세스는 구성 부품들과 관련하여 불량이 확인될 경우, 수행되는 재 작업을 포함할 수 있고, 열이 발생하는 작업을 포함할 수 있다.In
일 실시예에 따르면, 전자 장치(101)는 제 1 저장 공간(231)을 기반으로 데이터가 저장되므로, 동작 713에서의 열이 발생하는 공정 프로세스가 진행되더라도, 제 1 저장 공간(231)에 저장된 데이터가 손상되거나, 또는 변형되는 상황을 방지할 수 있다. 일 실시예에 따르면, 제 1 저장 공간(231)은 NAND 저장부(230)의 SLC(single level cell) 영역을 포함할 수 있고, 하나의 셀 당 약 1 비트의 데이터가 저장되므로, 상대적으로 주변의 온도 상승에 따른 데이터 손상이 적을 수 있다. 전자 장치(101)는 공정 프로세스가 진행되는 동안, 제 1 저장 공간(231)을 기반으로 데이터를 저장하여, 데이터의 손상 또는 변형을 방지할 수 있다.According to one embodiment, the
동작 713에서 공정 바이너리에 기반한 공정 프로세스가 완료되면, 동작 705로 회귀할 수 있다. 동작 705에서 프로세서(210)는 저장 장치(220)에서 라이트 부스터 기능을 지원하는지 여부를 확인할 수 있다.When the process process based on the process binary is completed in
동작 707에서 공정 바이너리의 진행이 확인되지 않으면, 프로세서(210)는 재부팅 동작을 수행할 수 있다. 예를 들어, 공정 바이너리의 진행이 확인되지 않는 상황은 공정 프로세서(예: 공정 단계)가 완료된 상황을 포함할 수 있다. 공정 프로세스가 완료되었다는 것은 열이 발생하는 제작 공정의 수행이 완료되었음을 의미할 수 있다. 프로세서(210)는 재부팅 동작에 의해, 운영체제(OS)를 수행할 수 있고, 동작 715에서 운영체제가 수행되는 시점에 비활성화 상태인 라이트 부스터 플러시 기능을 활성화 상태로 전환할 수 있다. If the progress of the process binary is not confirmed in
동작 717에서 저장 장치(220)의 저장 장치 제어부(221)는 라이트 부스터 플러시 기능이 활성화 상태인 것에 응답하여, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션시킬 수 있다. 예를 들어, 저장 장치 제어부(221)는 SLC 영역(예: 제 1 저장 공간(231))에 저장된 데이터를 MLC/TLC/QLC 영역(예: 제 2 저장 공간(232))으로 이동시켜서 저장할 수 있다.In
도 8은 본 개시의 일 실시예에 따른 write booster 기능을 기반으로 데이터를 마이그레이션하는 공정 프로세스를 도시한 예시도이다.Figure 8 is an example diagram illustrating a process for migrating data based on the write booster function according to an embodiment of the present disclosure.
도 8의 전자 장치(101)는 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)와 적어도 일부 유사하거나, 전자 장치(101)의 다른 실시예들을 더 포함할 수 있다. 도 8의 프로세서(210)는 도 2의 프로세서(210)와 적어도 일부 유사하거나, 프로세서(210)의 다른 실시예들을 더 포함할 수 있다.The
도 8을 참조하면, 공정 프로세스의 진행 및 완료 과정에서, 라이트 부스터 기능의 활성화 상태(예: ON) 및 비활성화 상태(예: OFF)를 나타내는 라이트 부스터 기능의 상태(WB state)(810) 및 저장 장치(220)에서 저장 공간으로 활용되는 cell type(820)을 도시한다.Referring to FIG. 8, during the progress and completion of the process, the state (WB state) 810 and storage of the light booster function indicating the activation state (e.g., ON) and the deactivation state (e.g., OFF) of the light booster function. A
도 8을 참조하면, 동작 801에서 1st SMD(831)(예: AP의 SMD)가 완료된 후, 수행되는 제 1 공정 프로세스(예: 동작 801, 동작 802) 및 동작 803에서 2nd SMD(833)(예: Master RF의 SMD)가 완료된 후, 수행되는 제 2 공정 프로세서(예: 동작 803, 동작 804)가 도시되었으나, 이에 한정되지는 않는다. 예를 들어, 공정 프로세스는 복수 개로 구성될 수 있다.Referring to FIG. 8, after the 1st SMD 831 (e.g., SMD of AP) is completed in
동작 801에서 프로세서(210)는 1st SMD(831)가 완료되고, 프로비저닝(provisioning) 동작(예: LU (logical unit) configuration 동작)을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 1st SMD(831) 동작으로 인해 발생된 열 손상 데이터를 초기화시키는 동작을 포함할 수 있다. 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 Logical Unit 크기를 설정하는 동작을 포함할 수 있다. 동작 801에서 프로세서(210)는 제 1 공정 프로세스와 관련된 데이터를 제 1 저장 공간(231)에 저장(예: 1st 바이너리 다운로드)할 수 있다.In
동작 802에서 전자 장치(101)는 제 1 공정 프로세스와 관련된 기능 검사(function test)가 수행될 수 있고, 상기 기능 검사의 결과, 불량이 확인될 경우, 제 1 공정 프로세스에 기반한 재 작업(예: 재 작업 발생 가능(832))을 수행할 수 있다. 예를 들어, 재 작업은 열이 발생하는 동작을 포함할 수 있다.In
일 실시예에 따르면, 제 1 공정 프로세스(예: 동작 801, 동작 802)가 진행되고, 제 2 공정 프로세스(예: 동작 803, 동작 804)가 진행될 수 있다. 도 8을 참조하면, 제 1 공정 프로세스(801, 802) 및 제 2 공정 프로세스(803, 804)가 진행되는 동안, 프로세서(210)는 제 2 바이너리(예: 도 2의 제 2 바이너리(213))에 기반한 부트로더의 수행에 응답하여, 라이트 부스터 기능을 활성화할 수 있고, 운영체제(OS)의 수행에 응답하여, 라이트 부스터 기능을 비활성화할 수 있다. 예를 들어, 동작 801, 동작 803, 동작 805에서는 라이트 부스터 기능(810)이 활성화 상태(ON)(811, 813, 815)일 수 있고, 동작 802, 동작 804에서는 라이트 부스터 기능(810)이 비활성화 상태(OFF)(812, 814)일 수 있다. 동작 801, 동작 803, 동작 805에서 프로세서(210)는 활성화된 라이트 부스터 기능을 기반으로, 데이터를 제 1 저장 공간(231)(예: SLC(821, 823, 825))에 저장할 수 있고, 동작 802, 동작 804에서 프로세서(210)는 비활성화된 라이트 부스터 기능을 기반으로, 데이터를 제 2 저장 공간(232)(예: TLC(822, 824))에 저장할 수 있다.According to one embodiment, a first process (eg,
동작 803에서 프로세서(210)는 2nd SMD(833)가 완료되고, 프로비저닝(provisioning) 동작(예: LU (logical unit) configuration 동작)을 수행할 수 있다. 예를 들어, 프로비저닝 동작은 Master RF SMD(833)동작으로 인해 발생된 열 손상 데이터를 초기화시킬 수 있다. 프로비저닝 동작은 NAND 저장부(230)를 기준으로 제 2 저장 공간(232)(예: MLC/TLC/QLC)의 Logical Unit 크기를 설정하는 동작을 포함할 수 있다. 동작 803에서 프로세서(210)는 제 2 공정 프로세스와 관련된 데이터를 제 1 저장 공간(231)에 저장(예: 2nd 바이너리 다운로드)할 수 있다.In
동작 804에서 전자 장치(101)는 제 2 공정 프로세스와 관련된 기능 검사(function test)가 수행될 수 있고, Main 공정이 진행될 수 있다. 전자 장치(101)는 기능 검사 및 Main 공정의 결과, 불량이 확인될 경우, 제 2 공정 프로세스에 기반한 재 작업(예: 재 작업 발생 가능(834))을 수행할 수 있다. 예를 들어, 재 작업은 열이 발생하는 작업을 포함할 수 있다.In
일 실시예에 따르면, 전자 장치(101)의 제작에 관한 공정 프로세스가 모두 완료된 경우, 동작 805에서 프로세서(210)는 유저 바이너리(user binary)를 다운로드할 수 있다. 예를 들어, 동작 805에서 라이트 부스터 상태(810)는 ON 상태(815)이며, 저장 장치 제어부(221)는 유저 바이너리를 제 1 저장 공간(231)(예: SLC(825))에 저장할 수 있다. 예를 들어, 유저 바이너리는 라이트 부스터 기능을 기반으로 제 1 저장 공간(231)에 저장될 수 있다. 만약, 유저 바이너리의 데이터 용량이 제 1 저장 공간(231)을 초과하는 경우, 유저 바이너리는 제 2 저장 공간(232)에 저장될 수 있다.According to one embodiment, when all processes related to manufacturing the
동작 805에서 유저 바이너리가 저장 장치(220)에 저장되는 동작에 응답하여, 동작 806에서 전자 장치(101)는 재부팅 동작(예: 단말 power on)을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 재부팅 동작에 응답하여, 운영체제(OS)가 실행될 수 있고, 운영체제가 수행되는 시점에서 라이트 부스터 플러시 기능을 비활성화 상태에서 활성화 상태로 변경할 수 있다. 예를 들어, 동작 806에서 라이트 부스터 상태(810)는 OFF 상태(816)이며, 저장 장치 제어부(221)는 라이트 부스터 플러시 기능을 기반으로 마이그레이션 동작을 수행할 수 있다. In response to the operation of storing the user binary in the
일 실시예에 따르면, 저장 장치(220)의 저장 장치 제어부(211)는 라이트 부스터 플러시 기능이 활성화 상태인 것을 확인하면, 제 1 저장 공간(231)에 저장된 데이터에 대한 마이그레이션 동작(816)을 수행할 수 있다. 예를 들어, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)(예: TLC(826))으로 이동시켜 저장할 수 있다.According to one embodiment, when the storage
일 실시예에 따른 저장 장치(예: 도 2의 저장 장치(220))의 동작 방법에 있어서, 제 1 비트의 데이터가 저장되는 제 1 저장 공간(예: 도 2의 제 1 저장 공간(231), SLC) 및 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(예: 도 2의 제 2 저장 공간(232), MLC/TLC/QLC)을 포함하는 제 1 메모리(예: 도 2의 NAND 저장부(230)) 및 상태 정보가 저장되는 제 2 메모리(예: 도 2의 DRAM(205)) 중 제 2 메모리(205)에 저장된 상태 정보를 기반으로, 저장 장치(예: 도 2의 저장 장치(220))에서 PSA 인터페이스를 지원하는지 여부를 확인하는 동작, PSA 인터페이스의 지원 확인에 상태 정보 를 제 1 상태로 변경하는 동작, 상태 정보가 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작, 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상태 정보를 제 2 상태로 변경하는 동작, 및 상태 정보가 제 2 상태인 것에 응답하여, 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션하는 동작을 포함할 수 있다. In a method of operating a storage device (e.g., the
일 실시예에 따른 방법은 제 1 메모리(230)의 전체 저장 공간 중에서 제 1 저장 공간(231)이 차지하는 비율을 확인하는 동작, 및 확인된 비율이 제 1 조건을 충족하는 경우, 제 1 저장 공간(231)의 사이즈를 확인하는 동작을 더 포함할 수 있다. 일 실시예에 따르면, 제 1 조건은 제 1 메모리(230)의 전체 저장 공간 중에서 제 1 저장 공간(231)이 차지하는 비율이 약 1/3을 초과하는 조건을 포함할 수 있다. A method according to an embodiment includes the operation of checking the ratio occupied by the
일 실시예에 따른 방법은 공정 바이너리에 대응되는 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작, 및 공정 바이너리를 기반으로 공정 프로세스가 진행되는 동안, 발생하는 적어도 하나의 데이터를 제 1 저장 공간(231)에 저장하는 동작을 더 포함할 수 있다.A method according to an embodiment includes an operation of storing data corresponding to a process binary in the
일 실시예에 따른 방법은 제 1 저장 공간(231)에 저장된 데이터가 제 2 저장 공간(232)으로 이동되는 마이그레이션 동작이 완료되면, 상태 정보를 제 2 상태에서 제 3 상태로 변경하는 동작을 더 포함할 수 있다.The method according to one embodiment further includes changing the state information from the second state to the third state when the migration operation in which the data stored in the
일 실시예에 따른 방법은 라이트 부스터(write booster) 기능의 지원 여부를 확인하는 동작, 라이트 부스터 기능을 지원하는 경우, 라이트 부스터 기능을 활성화하는 동작, 및 활성화된 라이트 부스터 기능을 기반으로 외부 전자 장치로부터 다운로드된 데이터를 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작을 더 포함할 수 있다. A method according to an embodiment includes checking whether the write booster function is supported, if the write booster function is supported, activating the write booster function, and an external electronic device based on the activated write booster function. It may further include storing data downloaded from in the
일 실시예에 따른 방법은 공정 프로세스의 완료에 응답하여, 전자 장치(101)를 재부팅하는 동작, 전자 장치(101)의 재부팅 동작에 응답하여, 운영 체제의 실행을 확인하는 동작, 재부팅 동작에 따른 운영 체제의 실행에 응답하여, 비활성화된 라이트 부스터 플러시 기능을 활성화하는 동작, 및 활성화된 라이트 부스터 플러시 기능을 기반으로 제 1 저장 공간(231)에 저장된 데이터를 제 2 저장 공간(232)으로 마이그레이션하는 동작을 더 포함할 수 있다. A method according to an embodiment includes, in response to completion of a process, rebooting the
일 실시예에 따른 방법은 전자 장치(101)의 부트로더 실행에 응답하여, 라이트 부스터 기능을 활성화하는 동작, 및 전자 장치(101)의 운영체제 실행에 응답하여, 라이트 부스터 기능을 비활성화하는 동작을 더 포함할 수 있다.The method according to one embodiment further includes activating the light booster function in response to execution of the bootloader of the
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.Electronic devices according to various embodiments disclosed in this document may be of various types. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments of this document are not limited to the above-described devices.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.The various embodiments of this document and the terms used herein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various changes, equivalents, or replacements of the embodiments. In connection with the description of the drawings, similar reference numbers may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the above items, unless the relevant context clearly indicates otherwise. As used herein, “A or B”, “at least one of A and B”, “at least one of A or B”, “A, B or C”, “at least one of A, B and C”, and “A Each of phrases such as “at least one of , B, or C” may include any one of the items listed together in the corresponding phrase, or any possible combination thereof. Terms such as "first", "second", or "first" or "second" may be used simply to distinguish one component from another, and to refer to those components in other respects (e.g., importance or order) is not limited. One (e.g., first) component is said to be “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively.” When mentioned, it means that any of the components can be connected to the other components directly (e.g. wired), wirelessly, or through a third component.
본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term “module” used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and is interchangeable with terms such as logic, logic block, component, or circuit, for example. It can be used as A module may be an integrated part or a minimum unit of the parts or a part thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document are one or more instructions stored in a storage medium (e.g., built-in
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, methods according to various embodiments disclosed in this document may be provided and included in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or on two user devices (e.g. It can be distributed (e.g. downloaded or uploaded) directly between smart phones) or online. In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (e.g., module or program) of the above-described components may include a single or plural entity, and some of the plurality of entities may be separately placed in other components. there is. According to various embodiments, one or more of the components or operations described above may be omitted, or one or more other components or operations may be added. Alternatively or additionally, multiple components (eg, modules or programs) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each component of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, or omitted. Alternatively, one or more other operations may be added.
101: 전자 장치
120, 210: 프로세서
205: DRAM
211: 호스트 컨트롤러
212: 제 1 바이너리
213: 제 2 바이너리
214: 제 3 바이너리
220: 저장 장치
221: 저장 장치 제어부
230: NAND 저장부
231: 제 1 저장 공간
232: 제 2 저장 공간101:
205: DRAM 211: Host Controller
212: first binary 213: second binary
214: third binary 220: storage device
221: storage device control unit 230: NAND storage unit
231: first storage space 232: second storage space
Claims (20)
제 1 비트의 데이터가 저장되는 제 1 저장 공간(231) 및 상기 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(232)을 포함하는 제 1 메모리(230);
상태 정보가 저장되는 제 2 메모리(205); 및
상기 제 1 메모리(230) 및 상기 제 2 메모리(205)에 작동적으로 연결된 메모리 컨트롤러(221); 를 포함하고,
상기 메모리 컨트롤러(221)는,
상기 제 2 메모리(205)에 저장된 상기 상태 정보를 기반으로, 상기 저장 장치(220)에서 PSA(product state awareness) 인터페이스를 지원하는지 여부를 확인하고,
상기 PSA 인터페이스의 지원 확인에 응답하여, 상기 상태 정보를 제 1 상태로 변경하고,
상기 상태 정보가 상기 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 상기 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하고,
상기 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상기 상태 정보를 제 2 상태로 변경하고,
상기 상태 정보가 상기 제 2 상태인 것에 응답하여, 상기 제 1 저장 공간(231)에 저장된 데이터를 상기 제 2 저장 공간(232)으로 마이그레이션하는 저장 장치.In the storage device 220,
A first memory 230 including a first storage space 231 in which a first bit of data is stored and a second storage space 232 in which a second or more bit of data other than the first bit is stored;
a second memory 205 in which status information is stored; and
a memory controller 221 operatively connected to the first memory 230 and the second memory 205; Including,
The memory controller 221,
Based on the state information stored in the second memory 205, determine whether the storage device 220 supports a product state awareness (PSA) interface,
In response to confirmation of support of the PSA interface, change the state information to a first state,
In response to the state information being the first state, data downloaded from an external electronic device is stored in the first storage space 231 of the first memory 230,
In response to completion of the process process corresponding to the downloaded data, changing the state information to a second state,
A storage device that migrates data stored in the first storage space (231) to the second storage space (232) in response to the state information being the second state.
상기 메모리 컨트롤러(221)는,
상기 제 1 메모리(230)의 전체 저장 공간 중에서 상기 제 1 저장 공간(231)이 차지하는 비율을 확인하고,
상기 확인된 비율이 제 1 조건을 충족하는 경우, 상기 제 1 저장 공간(231)의 사이즈를 확인하고,
상기 상태 정보가 상기 제 1 상태인 것에 응답하여, 상기 다운로드된 데이터를 상기 제 1 메모리(230)의 상기 제 1 저장 공간(231)에 저장하는 저장 장치.According to claim 1,
The memory controller 221,
Check the ratio occupied by the first storage space 231 among the total storage space of the first memory 230,
If the confirmed ratio satisfies the first condition, check the size of the first storage space 231,
A storage device that stores the downloaded data in the first storage space (231) of the first memory (230) in response to the state information being the first state.
상기 제 1 조건은 상기 제 1 메모리(230)의 전체 저장 공간 중에서 상기 제 1 저장 공간(231)이 차지하는 비율이 약 1/3을 초과하는 조건을 포함하고,
상기 메모리 컨트롤러(221)는,
상기 제 1 조건을 충족하는 경우, 상기 제 1 저장 공간(231)의 사이즈가 약 20GB 이상으로 설정되었는지 여부를 확인하는 저장 장치.According to claims 1 and 2,
The first condition includes a condition in which the proportion of the first storage space 231 of the total storage space of the first memory 230 exceeds about 1/3,
The memory controller 221,
A storage device that checks whether the size of the first storage space (231) is set to about 20 GB or more when the first condition is met.
상기 상태 정보는 PSA 인터페이스의 지원 여부를 나타내는 제 1 코드 정보, 상기 제 1 저장 공간(231)의 최대 사이즈를 나타내는 제 2 코드 정보, 전자 장치(101)의 상태를 나타내는 제 3 코드 정보, 및 상기 제 1 저장 공간(231)의 사이즈를 나타내는 제 4 코드 정보 중 적어도 하나를 포함하는 저장 장치.According to claims 1 to 3,
The status information includes first code information indicating whether the PSA interface is supported, second code information indicating the maximum size of the first storage space 231, third code information indicating the status of the electronic device 101, and the A storage device including at least one of fourth code information indicating the size of the first storage space 231.
상기 메모리 컨트롤러(221)는,
공정 바이너리에 대응되는 데이터를 상기 제 1 메모리(230)의 상기 제 1 저장 공간(231)에 저장하고,
상기 공정 바이너리를 기반으로 상기 공정 프로세스가 진행되는 동안, 발생하는 적어도 하나의 데이터를 상기 제 1 저장 공간(231)에 저장하는 저장 장치.According to claims 1 to 4,
The memory controller 221,
Store data corresponding to the process binary in the first storage space 231 of the first memory 230,
A storage device that stores at least one data generated while the process is in progress based on the process binary in the first storage space (231).
상기 메모리 컨트롤러(221)는,
상기 적어도 하나의 데이터를 상기 제 1 저장 공간(231)에 저장할 때, 상기 제 1 저장 공간(231)이 초과되는 상황을 확인하고,
상기 제 1 저장 공간(231)이 초과되는 상황에 응답하여, 상기 적어도 하나의 데이터를 상기 제 2 저장 공간(232)에 저장하는 저장 장치.According to claims 1 to 5,
The memory controller 221,
When storing the at least one data in the first storage space 231, confirming a situation in which the first storage space 231 is exceeded,
A storage device that stores the at least one data in the second storage space (232) in response to a situation where the first storage space (231) is exceeded.
상기 메모리 컨트롤러(221)는,
상기 제 1 저장 공간(231)에 저장된 데이터가 상기 제 2 저장 공간(232)으로 이동되는 마이그레이션 동작이 완료되면, 상기 상태 정보를 상기 제 2 상태에서 제 3 상태로 변경하는 저장 장치.According to claims 1 to 6,
The memory controller 221,
A storage device that changes the state information from the second state to the third state when a migration operation in which data stored in the first storage space (231) is moved to the second storage space (232) is completed.
상기 메모리 컨트롤러(221)는,
상기 상태 정보가 상기 제 1 상태일 때, 상기 제 1 저장 공간(231)에 기 저장된 데이터를 확인하고,
상기 기 저장된 데이터를 마이그레이션 제외 데이터로 설정하고,
상기 마이그레이션 동작이 수행될 때, 상기 제 1 저장 공간(231)에 저장된 데이터 중에서 상기 마이그레이션 제외 데이터가 아닌, 나머지 데이터를 마이그레이션하는 저장 장치.According to claims 1 to 7,
The memory controller 221,
When the state information is in the first state, check data previously stored in the first storage space 231,
Set the previously stored data as data excluded from migration,
A storage device that migrates remaining data other than the migration-excluded data among the data stored in the first storage space (231) when the migration operation is performed.
상기 공정 프로세스는 열이 발생하는 테스트 및 공정 단계를 포함하는 저장 장치.According to claim 1,
A storage device in which the processing process includes testing and processing steps in which heat is generated.
상기 메모리 컨트롤러(221)는,
라이트 부스터(write booster) 기능의 지원 여부를 확인하고,
상기 라이트 부스터 기능을 지원하는 경우, 상기 라이트 부스터 기능을 활성화하고,
상기 활성화된 라이트 부스터 기능을 기반으로 상기 외부 전자 장치로부터 다운로드된 데이터를 상기 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 저장 장치.According to claim 1,
The memory controller 221,
Check whether the write booster function is supported,
If the light booster function is supported, activate the light booster function,
A storage device that stores data downloaded from the external electronic device in the first storage space (231) of the first memory (230) based on the activated light booster function.
상기 메모리 컨트롤러(221)는,
상기 라이트 부스터 기능을 지원하는 경우, 상기 라이트 부스터 기능과 관련된 라이트 부스터 플러시 기능을 비활성화하고,
상기 비활성화된 라이트 부스터 플러시 기능을 기반으로 상기 마이그레이션 동작을 중단하는 저장 장치.The method of claims 1 to 10,
The memory controller 221,
If the light booster function is supported, disable the light booster flush function related to the light booster function,
A storage device that stops the migration operation based on the disabled light booster flush function.
상기 메모리 컨트롤러(221)는,
재부팅 동작에 따른 운영 체제의 실행에 응답하여, 상기 비활성화된 라이트 부스터 플러시 기능을 활성화하고,
상기 활성화된 라이트 부스터 플러시 기능을 기반으로 상기 제 1 저장 공간(231)에 저장된 데이터를 상기 제 2 저장 공간(232)으로 마이그레이션하는 저장 장치.The method of claims 1 to 11,
The memory controller 221,
In response to execution of the operating system following a reboot operation, activating the disabled light booster flush function,
A storage device that migrates data stored in the first storage space (231) to the second storage space (232) based on the activated light booster flush function.
상기 메모리 컨트롤러(221)는,
전자 장치(101)의 부트로더 실행에 응답하여, 상기 라이트 부스터 기능을 활성화하고,
상기 전자 장치(101)의 운영체제 실행에 응답하여, 상기 라이트 부스터 기능을 비활성화하는 저장 장치.The method of claims 1 to 12,
The memory controller 221,
In response to executing the bootloader of the electronic device 101, activating the light booster function,
A storage device that disables the light booster function in response to execution of the operating system of the electronic device (101).
제 1 비트의 데이터가 저장되는 제 1 저장 공간(231) 및 상기 제 1 비트가 아닌, 제 2 비트 이상의 데이터가 저장되는 제 2 저장 공간(232)을 포함하는 제 1 메모리(230) 및 상태 정보가 저장되는 제 2 메모리(205) 중 상기 제 2 메모리(205)에 저장된 상태 정보를 기반으로, 상기 저장 장치(220)에서 PSA(product state awareness) 인터페이스를 지원하는지 여부를 확인하는 동작;
상기 PSA 인터페이스의 지원 확인에 상기 상태 정보를 제 1 상태로 변경하는 동작;
상기 상태 정보가 상기 제 1 상태인 것에 응답하여, 외부 전자 장치로부터 다운로드된 데이터를 상기 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작;
상기 다운로드된 데이터에 대응되는 공정 프로세스의 완료에 응답하여, 상기 상태 정보를 제 2 상태로 변경하는 동작; 및
상기 상태 정보가 상기 제 2 상태인 것에 응답하여, 상기 제 1 저장 공간(231)에 저장된 데이터를 상기 제 2 저장 공간(232)으로 마이그레이션하는 동작; 을 포함하는 방법.In the method of operating the storage device 220,
A first memory 230 and status information including a first storage space 231 in which a first bit of data is stored and a second storage space 232 in which a second or more bit of data other than the first bit is stored An operation of checking whether the storage device 220 supports a product state awareness (PSA) interface based on state information stored in the second memory 205 of the second memory 205 in which is stored;
Changing the state information to a first state upon confirmation of support of the PSA interface;
In response to the state information being the first state, storing data downloaded from an external electronic device in the first storage space 231 of the first memory 230;
In response to completion of a process corresponding to the downloaded data, changing the state information to a second state; and
migrating data stored in the first storage space (231) to the second storage space (232) in response to the state information being in the second state; How to include .
상기 제 1 메모리(230)의 전체 저장 공간 중에서 상기 제 1 저장 공간(231)이 차지하는 비율을 확인하는 동작; 및
상기 확인된 비율이 제 1 조건을 충족하는 경우, 상기 제 1 저장 공간(231)의 사이즈를 확인하는 동작; 을 더 포함하고,
상기 제 1 조건은 상기 제 1 메모리(230)의 전체 저장 공간 중에서 상기 제 1 저장 공간(231)이 차지하는 비율이 약 1/3을 초과하는 조건을 포함하는 방법.According to claim 14,
Checking the ratio occupied by the first storage space 231 among the total storage space of the first memory 230; and
If the confirmed ratio satisfies a first condition, confirming the size of the first storage space 231; It further includes,
The first condition includes a condition that the ratio of the first storage space 231 to the total storage space of the first memory 230 exceeds about 1/3.
공정 바이너리에 대응되는 데이터를 상기 제 1 메모리(230)의 상기 제 1 저장 공간(231)에 저장하는 동작; 및
상기 공정 바이너리를 기반으로 상기 공정 프로세스가 진행되는 동안, 발생하는 적어도 하나의 데이터를 상기 제 1 저장 공간(231)에 저장하는 동작; 을 더 포함하는 방법.The method of claims 14 to 15,
An operation of storing data corresponding to a process binary in the first storage space 231 of the first memory 230; and
An operation of storing at least one data generated while the process is in progress based on the process binary in the first storage space 231; How to include more.
상기 제 1 저장 공간(231)에 저장된 데이터가 상기 제 2 저장 공간(232)으로 이동되는 마이그레이션 동작이 완료되면, 상기 상태 정보를 상기 제 2 상태에서 제 3 상태로 변경하는 동작; 을 더 포함하는 방법.The method of claims 14 to 16,
When a migration operation in which data stored in the first storage space 231 is moved to the second storage space 232 is completed, changing the state information from the second state to a third state; How to include more.
라이트 부스터(write booster) 기능의 지원 여부를 확인하는 동작;
상기 라이트 부스터 기능을 지원하는 경우, 상기 라이트 부스터 기능을 활성화하는 동작; 및
상기 활성화된 라이트 부스터 기능을 기반으로 상기 외부 전자 장치로부터 다운로드된 데이터를 상기 제 1 메모리(230)의 제 1 저장 공간(231)에 저장하는 동작; 을 더 포함하는 방법.According to claim 14,
An operation to check whether the write booster function is supported;
If the light booster function is supported, activating the light booster function; and
An operation of storing data downloaded from the external electronic device in the first storage space 231 of the first memory 230 based on the activated light booster function; How to include more.
상기 공정 프로세스의 완료에 응답하여, 전자 장치(101)를 재부팅하는 동작;
상기 전자 장치(101)의 재부팅 동작에 응답하여, 운영 체제의 실행을 확인하는 동작;
상기 재부팅 동작에 따른 상기 운영 체제의 실행에 응답하여, 상기 비활성화된 라이트 부스터 플러시 기능을 활성화하는 동작; 및
상기 활성화된 라이트 부스터 플러시 기능을 기반으로 상기 제 1 저장 공간(231)에 저장된 데이터를 상기 제 2 저장 공간(232)으로 마이그레이션하는 동작; 을 더 포함하는 방법.The method of claims 14 to 18,
In response to completion of the processing process, rebooting the electronic device 101;
Confirming execution of an operating system in response to a rebooting operation of the electronic device 101;
activating the disabled light booster flush function in response to execution of the operating system according to the reboot operation; and
An operation of migrating data stored in the first storage space (231) to the second storage space (232) based on the activated light booster flush function; How to include more.
상기 전자 장치(101)의 부트로더 실행에 응답하여, 상기 라이트 부스터 기능을 활성화하는 동작; 및
상기 전자 장치(101)의 운영체제의 실행에 응답하여, 상기 라이트 부스터 기능을 비활성화하는 동작; 을 더 포함하는 방법.The method of claims 14 to 19,
activating the light booster function in response to execution of the bootloader of the electronic device 101; and
disabling the light booster function in response to execution of an operating system of the electronic device 101; How to include more.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2023/018575 WO2024112015A1 (en) | 2022-11-21 | 2023-11-17 | Method for manufacturing storage device, and electronic device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220156762 | 2022-11-21 | ||
KR20220156762 | 2022-11-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240074611A true KR20240074611A (en) | 2024-05-28 |
Family
ID=91277188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230004055A KR20240074611A (en) | 2022-11-21 | 2023-01-11 | Method and electronic device for manufacturing storage device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240074611A (en) |
-
2023
- 2023-01-11 KR KR1020230004055A patent/KR20240074611A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230342074A1 (en) | Electronic device and method for operation of storage of electronic device | |
US10691624B2 (en) | Universal flash storage, electronic device capable of connecting to a plurality type of memory devices and method thereof | |
US20230168831A1 (en) | Electronic device and operation method of electronic device for managing storage space | |
CN114450662A (en) | Application optimization method and electronic device supporting same | |
KR20240074611A (en) | Method and electronic device for manufacturing storage device | |
KR20220102421A (en) | Electronic device and memory management method of the electronic device | |
KR20220099322A (en) | Electronic device and method for managing memory using the same | |
WO2024112015A1 (en) | Method for manufacturing storage device, and electronic device | |
KR20230037910A (en) | Printed circuit board and method for data processing | |
US20230305855A1 (en) | Electronic device including controller for system booting and operating method thereof | |
KR20220135504A (en) | Data Storage device and operating method of data Storage device | |
KR20230063819A (en) | Electronic device for adjusting driving voltage of volatile memory and method for operating the same | |
KR20240072871A (en) | Method for operating nonvolatile memory device based on temperature of memory and electronic device supporting the same | |
US11907166B2 (en) | Electronic device and method for updating database based on reserved space | |
US20230118797A1 (en) | Data swapping method and electronic device supporting same | |
US20230130911A1 (en) | Apparatus for managing cache loss and operation method thereof | |
EP4343766A1 (en) | Electronic device for adjusting driving voltage of volatile memory, and operating method therefor | |
US20230267071A1 (en) | Electronic device and method controlling the same | |
EP4394577A1 (en) | Method for operating non-volatile memory on basis of temperature of memory and electronic device for supporting same | |
KR20220102360A (en) | Electronic device perfroming test for detecting fault of electronic device and method thereof | |
KR20230081556A (en) | Electronic device and operation method of electronic device for managing storage space | |
KR20220102339A (en) | Electronic device and kernel module loading method of the electronic device | |
KR20230139262A (en) | Electronic device including the controller for system booting and method | |
KR20220101967A (en) | Electronic device and memory management method of the electronic device | |
KR20230045488A (en) | Method for connecting external electronic device and electronic device supporting the same |