[LTE/NR] 타이밍 어드밴스 (Timing Advance)

Timing Advance는 Subframe이 도착하는 시간을 조절하기 위해서 사용된다. 만약 기지국(eNodeB)에서 떨어져 있는 거리가 다른 여러 단말(UE)에서 신호를 보내면 서로 다른 시간에 도착하게 된다. 이러한 경우 Signal Interference가 발생해서 신호를 제대로 파악하기 어려워진다. Timing 문제를 해결하기 위해서 PUSCH/PUCCH/SRS와 같이 Uplink 신호를 사용해서 Timing을 지속해서 측정한다. 간단히 설명하면 PUSCH 신호의 도착 시각이 다소 빠르다고 판단되면 해당 단말(UE)에 … Read more

[LTE/NR] Youtube 강의 정리 (NPTEL)

통신 관련 강의를 찾아보다가 Youtube에 괜찮은 강의가 있어서 정리해보았습니다. 강의를 보면서 각 강의에서 설명하는 내용과 공부가 필요한 내용을 정리하였습니다. 출처 1은 Youtube 동영상 강의 주소이고, 출처 2는 영어 강의 스크립트를 다운받을 수 있는 사이트입니다. 혹시 영어 강의가 아니면서 괜찮은 강의가 있으면 공유 부탁드립니다! Lecture 01: Overview of Cellular Systems – Part 1 주소 https://www.youtube.com/watch?v=f2wlHL1Sok8&t=2697s 내용 … Read more

[LTE/NR] Channel Model

주의 (Caution) 제가 작성한 다른 글에서도 틀린 내용이 존재할 수도 있지만, 특히 LTE/NR에 대해서는 지식이 없어서 틀린 내용이 더 많이 있을 수도 있습니다. 제가 이해하기 위해서 구글에서 찾은 내용을 정리한 글입니다. 혹시나 틀린 내용을 알려주시면 정말 감사하겠습니다. What is Channel? (출처 1) Channel이란 통신 신호가 지나가는 통로를 의미하는 것으로 판단된다. 예를 들어서 컴퓨터 간에 케이블로 … Read more

[LTE/NR] Abbreviation + Terminology

어쩌다 보니 LTE/NR 통신에 대해서 공부를 하게 되었다. 대학교에서도 통신 수업을 들어본 적이 없고, 태어나서 한 번도 통신 분야 공부를 해본 경험이 없다. 컴퓨터 구조, 그래픽 등의 분야에서도 Abbreviation (줄임말)을 많이 사용하지만, 통신 분야는 특히 Abbreviation을 훨씬 많이 사용하는 것 같습니다. 물론 몰라서 더 많이 사용하는 것처럼 느낄 수도 있지만… 정말 Abbreviation이 많은 것 같습니다. … Read more

[GPU] Mali Valhall Architecture (Mobile GPU)

Previous GPU Architecture (Bifrost GPU) 지난 5월(2019년)에 Mali의 새로운 GPU Architecture Valhall이 공개되었다. 지난 Bifrost 대비 많은 변화가 있었다고 한다. 우선 지난 Bifrost에 대해서 짧게 정리하였다. Bifrost는 지난 2016년에 처음 공개되어서 그림 1과 같이 Mali-G71, Mali-G72, Mali-G76 순서대로 총 3세대(High-Tier GPU 기준)에 걸쳐서 제품으로 출시되었다. Bifrost는 ARM GPU 중 최초로 Scalar GPU 구조로 되어 있다. … Read more

[GPU] Coordinate System (좌표 변환 순서)

Graphic API를 사용해서 이미지를 Rendering 하면 여러 연산 과정을 거치게 된다. 그중 Vertex Shader 연산은 물체(Object)의 좌표값을 계산하는 작업을 수행한다. 좌표 계산을 위해서 여러 번의 Transform(변환) 연산을 수행한다. 이번 글에서는 좌표의 변환 순서에 대해서 정리할 예정이다. MK: 예전에는 Vertex 연산 과정에서 Light 등을 고려해서 색상을 결정하는 연산도 같이 수행하였다고 한다. 그래서 Vertex Shader 라는 이름이 … Read more

[GPU] Occlusion Culling (Early-Z vs. Occlusion Queries)

What is Occlusion Culling? (출처 1) 간단히 설명하면 필요 없는 Geometry(지형, 물체 등)를 그리지 않도록 불필요한 연산을 제거하는 기술이다. 보통 모니터에 보이는 화면에 벗어난 물체 또는 다른 물체에 의해서 가려지는 물체(Occlusion) 등에 대한 연산을 수행하지 않게 하여서 Rendering 성능을 향상하는 방법을 의미한다. Occlusion Culling은 크게 “Occlusion Query”와 “Early-Z” 방법을 사용하여서 필요 없는 Rendering 연산을 제거한다. … Read more

[Android] Systrace를 사용하여 SurfaceFlinger 동작 원리 확인하기

Android System Trace (Systrace (출처1))를 사용하여 GPU가 Rendering 한 결과 이미지를 SurfaceFlinger을 통해서 Display 되는 순서를 확인하는 방법에 대해서 정리하였다. Systrace를 사용하여 순서를 확인하기 전에 Android에서 Producer, Consumer, BufferQueue에 대한 이해가 필요하다. 솔직히 완전히 이해하진 못하지만, 간단히 이해한 내용을 정리하였다. 다음에 알게 되는 내용을 추가하거나,  또는 잘못된 내용을 찾게 되면 수정할 계획이다. 그림 1: Producer/Buffer … Read more

[CPU/SoC] Build on ARM Cortex Technology License (Build on Cortex/BoC)

2016년 2월에 ARM은 새로운 “Build on ARM Cortex Technology (Build on Cortex/BoC)” License 모델을 공개하였다 (출처 1). 새로운 License 모델이 공개되기 전에는 크게 2가지 License 모델만 존재하였다. 그림 1은 기존 2가지 License 모델에 대한 설명이다 (출처 1). 그림 1: 기존 ARM 라이센스 (출처 1) 첫 번째 License는 ARM에서 제작한 Cortex CPU를 받아서 사용하는 것을 의미한다. 예를 … Read more

[CPU/SoC] Exynos 9820 (Samsung)

지난 11월에 삼성 LSI가 개발한 Exynos 9820을 공개하였다. Samsung 갤럭시 S10 국내 제품에 탑재되어 판매되고 있는 제품이기도 하다. 2017년도에 출시된 Exynos 9810의 경우 같은 해에 출시된 Snapdragon 845 대비 성능이 많이 떨어졌던 것으로 알려져 있다 (출처 1). 이번에 출시된 Exynos 9820은 기존 Exynos 9810 대비 성능, 배터리 효율 등이 모두 좋아진 것 같다. Snapdragon 855와 … Read more