랩뷰 메모리 부족 현상에 대해서

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9mtSAC

Issue Details

When I am developing a large application in LabVIEW, I sometimes receive the following error message, even though I have a large amount of available RAM.

LabVIEW: Memory is full.
The top-level VI was stopped on the block diagram.
Refer to the VI Memory Usage topic in the LabVIEW Help for suggestions on monitoring and improving VI memory usage.


Solution

You typically receive this message when you are developing an application with large data sets of arrays, clusters, or waveforms. Because LabVIEW stores each data set in a contiguous block of memory, the block of memory available on your computer might not be large enough to store a large data set.

Use the suggestions in the following sections to prevent this message from appearing:

Reducing the Memory Arrays, Clusters, and Waveforms Use
  • If you have an array with a large data set, wire a smaller data type to the array, if possible. For example, if the array is a double-precision, floating point number [DBL] and you are storing integers in the 0 to 100 range, you can change the integer representation to Unsigned 8 bit integers [U8]. A U8 data type uses an eighth of the memory that a double-precision floating point number uses.
  • In LabVIEW 8.5 and later, use the In Place Element Structure to avoid making copies of data when using an array, cluster, or waveform.
  • If you are graphing data from a large array, use max-min decimation to avoid graphing every data point. Refer to LabVIEW Help: Memory Management for Large Data Sets for more information about max-min decimation.
  • Analyze the large data set to determine where memory is full. Stream or write the data to disk and use a high-performance analysis and reporting tool, such as TDMS files, and NI DIAdem software.

Reducing Memory Usage in Applications
  • To limit the number of times LabVIEW copies data, reduce the number of global and local variables in an application. Instead of using variables, you can create loops using a producer/consumer design pattern, or you can use the New Data Value Reference function to create a reference to the data.
  • Separate sections of code into subVIs to make memory available when the subVIs are not executing.
  • Use the Call By Reference Node to call large subVIs dynamically. A subVI is not in memory until a VI calls it dynamically.
  • Use the Profile Performance and Memory Window to acquire and display data about execution and data time. How Can I Monitor Execution Time and Memory Usage in My LabVIEW VIs?
  • Make improvements to the code to optimize memory usage. Refer to How Can I Optimize the Memory Use in My LabVIEW VI? for more information about memory optimization.
  • Use the NI LabVIEW Desktop Execution Trace Toolkit to identify problems that could negatively impact performance such as memory leaks and reference leaks; collect low-level information such as call chain, thread ID, and location in virtual memory of trace; as well as profile VIs, executables, and shared libraries.

Increasing Memory in LabVIEW
 


Additional Information

This message is most common if LabVIEW cannot allocate a block of memory large enough for an array. For example, an array of double-precision, floating point numbers with 2,000 by 2,000 elements uses approximately 32 MB. Even if 32 MB of memory is available, you may not have a block of memory large enough for the array.
In the specific example seen above, this error is generated when an array containing more than 2^31 elements is used to index a For Loop. Arrays can contain up to 2^32 elements, but a For Loop can only index up to 2^31 values. This is because the N terminal uses the I32 datatype rather than the U32. The most significant bit of the I32 datatype is used to specify whether the value is positive or negative.

윈도우 10 하드디스크 조각모음과 SSD 트림 방법

윈도우10 하드디스크(HDD) 조각 모음과 SSD 트림 방법 알아보기

[자료 출처 : https://blog.naver.com/led85/221090815396]

최근 낸드플래시를 이용한 SSD가 운영체제용 저장 장치로 각광받고 있습니다. 모든 부분에서 만족스럽지만 가격 대비 용량이 아직은 비싸기 때문에 대용량 저장 장치로 사용이 어렵다는 단점이 있습니다. 아마 많은 분들이 운영체제용 드라이브에는 SSD를 저장용 드라이브에는 일반 하드디스크(HDD)를 사용하고 계실 겁니다. SSD로 하드디스크(HDD)를 대체하면 좋겠지만 비싼 가격으로 인해 완전한 대체는 어려운 것이 사실입니다.
양쪽 기록 장치는 사용시간과 용량이 참에 따라 관리를 해주어야 될 필요성이 있습니다. 하드디스크의 경우 조각 모음을 하면 되지만 SSD는 조각 모음을 하면 안 된다고 많이들 알고 계실 겁니다. 이 플래시 메모리의 경우 조각 모음 대신 트림을 해주어야 합니다. 트림이란 삭제한 데이터를 실제로 비우는 작업을 뜻합니다. 이것은 HDD와 다른 구조로 인해 생기는 작업으로 낸드 플래시 메모리에서만 해주어야 되는 별도 작업입니다.



HDD의 경우 데이터를 삭제하면 삭제되었다는 기록을 남기고 다른 자료를 덮어쓰기 하는 방식을 취합니다. 즉 실제 자료를 삭제하지는 않지만 해당 공간에 다른 데이터를 저장할 수 있게 만들어 줍니다. 이런 방식을 취하는 이유는 실제 자료를 삭제하는 과정이 오래 걸리기도 하고 다른 작업과 함께 진행되면 성능도 떨어지기 때문입니다.
반대로 SSD는 삭제되었다고 하더라도 덮어쓰기가 되지 않습니다. 데이터가 저장된 블록을 전부 지워내야 다시 쓰기가 지원 됩니다. 결국 트림을 통해 해당 블록에서 삭제되지 않아야 될 데이터는 다른 곳으로 옮겨주고 해당 블록을 비워내는 방식을 취합니다. 이 작업을 하지 않으면 남아 있는 빈 공간에만 새 데이터를 저장하기 때문에 점점 용량이 적어지는 문제가 발생합니다. 결과적으로 성능도 안 좋아집니다. 바로 이 문제를 해결하기 위해 실제 데이터를 지워내는 작업이 트림입니다.
예전에는 TRIM을 하기 위해서는 제조사의 별도 프로그램을 사용했어야 했습니다. 하지만 윈도우10으로 운영체제가 업그레이드되면서 윈도우내에서 TRIM과 조각 모음 모두가 자체 해결됩니다. 자주는 아니더라도 가끔 한번 해주면 쓰기 수명이 제한되어 있는 플래시 메모리를 더 오래 사용할 수 있기도 합니다. 자세한 방법을 알아보도록 하겠습니다.


로컬 드라이브에서 마우스 오른쪽 클릭 후 속성으로 들어갑니다. 속성 팝업창에서 도구 탭으로 이동합니다.


도구 탭에서 드라이브 최적화 및 조각 모음의 최적화를 클릭해 줍니다.


SSD의 경우 위와 같이 최적화를 클릭해주면 바로 트림이 실행됩니다. 마지막 실행 일자를 보면 언제 마지막으로 해당 작업을 수행했는지 확인이 가능합니다. 혹시 조각 모음이 되지 않을까 걱정하실 수 있지만 윈도우10의 경우 낸드 플래시 반도체 드라이브와 일단 하드 디스크 드라이브를 구분하기 때문에 최적화를 클릭해 주면 됩니다.


일반 하드 디스크 드라이브의 경우도 방법은 동일합니다. 분석이나 최적화를 클릭해주면 바로 조각 모음이 실행됩니다.이쪽은 알아서 조각 모음이 수행됩니다. 저장 장치 용량에 따라 수행 시간이 오래 걸릴 수 있습니다.


하단의 예약된 최적화를 통해 예약 최적화도 가능합니다. 설정 변경을 클릭하면 주기별로 드라이브를 지정하여 최적화를 실행할 수 있습니다.너무 자주는 아니더라도 가끔 한 번은 해주는 것이 좋습니다.


윈도우10은 귀찮고 복잡했던 SSD의 트림 기능을 간단하게 사용할 수 있는 장점이 있습니다. 일반 하드디스크(HDD)는 조각 모음을 하고 있었지만 SSD 트림을 하지 않고 있었다면 지금 한 번쯤은 해줄 것을 추천드립니다. 쓰기 수명이 제한되어 있는 SSD의 특성상 활용하지 못하는 공간이 늘어나면 늘어날수록 성능도 떨어지고 수명도 짧아집니다. 특정 블록에 쓰기가 빈번히 일어난다면 훨씬 더 빨리 수명이 다할 수 있습니다. 윈도우10의 드라이브 최적화를 통해 성능과 수명 두 마리 토끼를 모두 잡을 수 있도록 합시다.

KT 올레 VIP 초이스 포인트 사용하기

KT 올레 포인트 있는 줄도 모르고 있었는데, 무료로 사용 가능한 것들이 몇가지 있더군요.

우선은 VIP 등급이 되어야 사용 가능하고요.

VIP 초이스라는 것으로 이용 가능한 것이 몇개 있습니다.

https://membership.kt.com/vip/choice/ChoiceInfo.do

자세한 설명은 여기에 잘 나와 있습니다.

저같은 경우에는 커피, GS25 도시락, 이마트 정도가 사용하기 적합한것 같습니다.

몇 푼 안되는 돈이지만, 그래도 공짜라는게 굿입니다.

원자층 증착에 대한 고찰

원자층 증착[Atomic Layer Deposition]은 박막을 만들기 위한 매우 정밀하고 제어 가능한 공정으로 많은 분야에서 응용, 사용되고 있습니다. 아직 많은 기술적 문제가 있지만, 최첨단 기술과 연구를 통해 점점더 발전 되어 가고 있습니다.

원자층 증착과 더불어 원자층 에칭 기술의 발전은 반도체 칩제조 공정의 예를 보면, 새로운 소재 및 3차원 설계를 가능하게 합니다.

[화학 증착 기법, Chemical Vapor Deposition]

ALD는 반도체 칩 제조 과정에서 박막을 생산하는데 가장 보편적으로 이용되는 CVD 방법중에 하나입니다.

CVD 공정은 가스 형태의 전구체(Precursor)를 실리콘 웨이퍼가 들어있는 프로세스 챔버에 넣어줍니다. 이 때 가스의 흐름이 매우 중요합니다.
이 전구체는 웨이퍼 표면에서 반응하여 챔버에서 제거된 부산물(Byproducts)과 함께 원하는 형태의 막을 형성하게 됩니다.
박막의 품질 및 증착 속도를 높게 유지하면서, 공정 온도를 낮추기 위해 플라즈마를 이용하는 CVD(PECVD)방법도 있습니다. 그러나, 플라즈마를 이용하는 공정은 전구체, 플라즈마, 부산물 기타 등등의 물질들이 전부 챔버에 떠다니기 때문에 원자 수준의 제어를 하기에는 어려움이 있습니다.

[원자층 증착]

증착 공정에서 제어를 향상시키기 위해 공정을 두 단계로 나눠 제어하는 방법이 있습니다.
ALD 공정의 첫번째 단계는 코팅(흡착) 할 수 있는 전구체로 리액션 챔버를 가득 채우고, 코팅하기 위한 표면을 노출 시킵니다. 이 때 노출된 영역에 전구체가 흡착되고, 자기제어(Self-limiting) 공정이 이루어 지게 됩니다. 모든 영역이 코팅되고 나면, 자체적으로 흡착은 멈춥니다.

두번째 단계 또한 자기제어 공정이 이루어지게 되는데, 가스가 챔버안으로 주입돼 기존에 있던 원료 가스에 자체적으로 반응하여 원하는 물질을 형성하도록 하는 것입니다. 원료 가스가 모두 소모되면 화학 반응이 멈춥니다. 이러한 과정을 반복하여 원하는 두께까지 박막을 형성합니다.

하나의 공정을 어떻게 두단계로 나누어 할 것인가에 따라서 Spatial ALD 기술과 Temporal ALD 기술로 생각해 볼 수 있습니다.

Spatial  ALD 기술은 웨이퍼를 서로 다른 위치로 이동시킴으로써 각기 다른 전구체에 노출 될 수 있도록 합니다.

Temporal ALD 기술은 웨이퍼를 한 위치에 고정 시키고 대신에 전구체를 챔버안에 넣어주고, 제거하는 방식으로 진행 됩니다. 이 기술은 임계치수(CD) 범위를 제어하는 것등의 전반적인 공정 품질을 개선 할 수 있습니다.


[ALD의 이점]


원자층 증착이 가진 장점은 모두 자체적으로 제어 가능한 연속 반응에서 찾을 수 있습니다.

일반 증착은 정확하게 한 사이클 당 한개의 막을 증착 하지는 못하지만, 박막의 두께 조절이 상대적으로 쉽고, 웨이퍼 전체에 어느 정도 균일한 박막 형성이 가능합니다.

ALD 증착은 디바이스 상단, 측면 및 하단부에 동일한 두께의 막을 증착하기 때문에, 웨이퍼 지형도와 완벽히 일치하는 층을 만들 수 있습니다. 이렇게 높은 점착성(Conformality)을 확보하는 것은 고 종횡비(High-aspect-ratio) 및 3D 구조 형성에 있어 매우 중요하고, 장점이 됩니다. 뿐만 아니라 웨이퍼 표면은 원자 수준으로 매끄러우며, 화학적 구성이 잘 되어 있습니다.




 [원자층 증착법의 적용]


원자층 증착법은 선택하는 전구체에 따라 절연막(insulating)과 메탈막(conducting) 모두 생산 가능합니다.

자가 정렬 패턴(Self-Aligned Patterning) : 원자층 증착법은 자가 정렬 다중 패턴 공정에서 핵심적인 역할을 합니다. 현재 리소그래피 기술로 생산 할 수 있는 것보다 더 작은 패턴을 만들 수 있습니다. 이 때 얇은 스페이서가 사전 정의된 표면 위에 증착되는데, 이렇게 스페이서가 증착된 막은 결국 최종 패턴의 임계치를 의미하기 때문에 매우 균일하고 평평해야 합니다.


3D 낸드 : 3D낸드 메모리 디바이스의 3차원 구조는 미세 공정을 제어 할 수 있는 고도의기술을 필요로 합니다. 원자층 증착법은 메모리 구멍의 측면에 절연막을 형성함으로써 미세 공정을 효과적으로 제어 할 수 있도록 합니다. 특히 금속 원자층 증착법은 대체 게이트 단계에서 워드라인(word line)을 채우는데 활용 됩니다. 이때 좁고 평평한 표면을 완벽히 재우기 위해 측면 증착이 필요합니다.

핀펫(FinFET) : 핀펫 공정에서 트랜지스터 게이트 측면에 증착 되는 얇은 스페이서 막은 정확하게 균일한 두께이고, 핀홀(pinhole)이 없어야 합니다. 원자층 증착법은 3차원 핀 구조에서 컨트롤 게이트를 분리 시킬수 있는 층을 증착하기에 매우 적합합니다.



[원자층 증착법의 미래]

최근에는 특정 부분에만 선택적으로 박막을 필요로 하는 분야에서 많은 각광을 받고 있습니다. 그래서 많은 연구자들이 특정위치에 절연막과 금속을 증착 할 수 있는 방법을 연구하고 있습니다. 기존과는 전혀 다른 방식의 패터닝 기술을 개발하고 있습니다. 이 때 무엇보다도 감도를 확보하는 것이 중요합니다. 그리고, 보다 정확하게 새로운 패턴이 기존의 패턴에 정렬 될 수 있도록 하기 위한 방법이 대두되고 있습니다. 기존의 전기 접점에서 벗어나 패턴이 잘못 정렬되면, 감도가 떨어지고 이것은 칩의 성능과 직결되는 문제입니다.


앞으로 원자층 증착 방법은 최첨단 반도체 제조 분야에서 점점더 핵심적인 역할을 하게 될 것입니다. 나아가 반도체 분야만이 아니라 이 기술이 적용 가능한 다양한 분야에서 혁신 또한 계속 될 것입니다. 새로운 구조 설계나 차세대 디바이스에 적용되기 위한 활용 전략으로 끊임없이 진보 할 것입니다.


[원본 출처 : LAM리서치]

2024년 9월 13일 금요일 나의 투자 기록

 1. 사람은 각자의 고민이 있게 마련이다. 이게 어떤 조직을 이루고 있고, 많은 사람이 그 조직에 섞여 있으면서 각자의 고민이 조직에 영향을 주게 된다. 즉 문제가 발생하는 요인이 되는 것이다. 다른 사람의 고민을 감지하고, 고민을 알게 되었다면 2...